Sur un site où les sauvegardes et les uploads vers des buckets Google fonctionnaient, la page de sauvegarde indique maintenant :
Échec de l'accès au stockage de sauvegarde : Un en-tête ou une requête que vous avez fourni demande une fonctionnalité qui n'est pas implémentée.
Je pensais qu’il pourrait s’agir d’un problème de permissions du bucket (mais cela n’avait pas vraiment de sens car la même configuration fonctionnait il y a quelques semaines), mais en relisant ce message, cela semble indiquer que Discourse essaie de faire quelque chose qui n’est, euh, pas implémenté. (Ce qui semble aussi peu probable).
Les uploads S3 vers un bucket Google (bien qu’un autre) fonctionnent parfaitement. Il y a un site de production sur la version 2.4.0.beta9 et un site de staging exécutant la version 2.4.0.beta10 (et je viens de faire une autre mise à niveau sur le site de staging).
Il s’agit d’une installation standard à 2 conteneurs avec uniquement des plugins standard et les paramètres S3 configurés avec env: dans le fichier .yml. EDIT : J’ai supprimé ces paramètres ENV du fichier yml et reconstruit (la commande destroy, start ne les a pas supprimés) et le problème persiste.
Je ne vois aucun commit évident (pour moi) qui pourrait être lié.
EDIT : Il existe une autre instance d’installation standard exécutant 2.4.0.beta8 avec les mêmes paramètres et elle fonctionne, il semble donc que quelque chose se soit produit entre beta8 et beta9. Cela ressemble à un . @gerhard, cela pourrait-il être lié à vos modifications de sauvegarde ?
P.S. J’ai vérifié un site utilisant DigitalOcean Spaces et les sauvegardes fonctionnent parfaitement.
Are you getting the error as soon as you visit /admin/backups? I didn’t change anything in that area recently, but we updated the aws-s3 gem between beta8 and beta10 from version 1.36.1 to 1.60.1. It’s possible that this doesn’t work with Google buckets anymore. Maybe you find the cause in the CHANGELOG. You could test with different versions of the gem to narrow it down.
So, by entering the container and editing Gemfile and changing
gem 'aws-sdk-s3', require: false
to versions of
gem 'aws-sdk-s3', '1.51.0', require: false
and then doing
bundle install --no-deployment
sv restart unicorn
to see if it worked or not, a binary search through the versions shows that 1.51.0 is the last version that works, so something in 1.52.0 “Feature - Adding support in SelectObjectContent for scanning a portion of an object specified by a scan range.” is where the problem began.