Problema com Google Bucket para backup

Em um site onde backups e uploads para buckets do Google funcionavam, a página de backup agora exibe:

Falha ao acessar o armazenamento de backup: Um cabeçalho ou parâmetro de consulta fornecido solicitou uma função que não está implementada.

Eu pensei que pudesse ser um problema de permissões do bucket (mas isso não fazia muito sentido, pois a mesma configuração estava funcionando algumas semanas atrás), mas relendo a mensagem, parece que o Discourse está tentando fazer algo que, hum, não está implementado. (O que também parece improvável).

Uploads S3 para um bucket do Google (embora um diferente) estão funcionando perfeitamente. Há um site de produção na versão 2.4.0.beta9 e um site de staging na 2.4.0.beta10 (e acabei de fazer outra atualização no site de staging).

É uma instalação padrão de 2 contêineres, com apenas plugins padrão e as configurações do S3 definidas com env: no arquivo .yml. EDIT: Eu excluí essas configurações de ENV do yml e reconstruí (o comando destroy, start não as removeu) e o problema persiste.

Não vejo nenhum commit óbvio (para mim) que possa estar relacionado.

EDIT: Há outra instância de instalação padrão rodando 2.4.0.beta8 com as mesmas configurações e está funcionando, então parece que algo aconteceu entre o beta8 e o beta9. Isso realmente parece ser um :bug:. @gerhard, isso poderia de alguma forma estar relacionado às suas alterações nos backups?

P.S. Verifiquei um site usando DigitalOcean Spaces e os backups estão funcionando normalmente.

Você está recebendo o erro assim que visita /admin/backups? Eu não alterei nada nessa área recentemente, mas atualizamos o gem aws-s3 entre beta8 e beta10, da versão 1.36.1 para a 1.60.1. É possível que isso não funcione mais com buckets do Google. Talvez você encontre a causa no CHANGELOG. Você pode testar com diferentes versões do gem para reduzir o escopo do problema.

Sim.

Puxa.

Que nojo. Vou entrar em contato com um engenheiro do Google, que provavelmente não saberá, e ver o que mais consigo descobrir.

Muito obrigado.

Então, ao entrar no contêiner e editar o Gemfile, alterando

gem 'aws-sdk-s3', require: false

para a versão

gem 'aws-sdk-s3', '1.51.0', require: false

e depois executando

bundle install --no-deployment
sv restart unicorn

para verificar se funcionou, uma busca binária pelas versões mostrou que a 1.51.0 é a última versão que funciona. Portanto, algo na 1.52.0 — “Feature - Adding support in SelectObjectContent for scanning a portion of an object specified by a scan range.” — é onde o problema começou.

Não tenho certeza do que fazer a seguir. Acho que vou abrir uma issue em GitHub - aws/aws-sdk-ruby: The official AWS SDK for Ruby · GitHub, mas não sei se eles se importam, certo? Então talvez seja melhor abrir um ticket com o Google?

E o Discourse ainda funciona para uploads em buckets do Google, apenas não para backups.

Presumivelmente, isso foi resolvido, pois o Google parece ser compatível em