Проблемы с Google Bucket для резервного копирования

На сайте, где резервное копирование и загрузка в бакеты Google ранее работали, страница резервного копирования теперь показывает:

Не удалось получить доступ к хранилищу резервных копий: Заголовок или параметр запроса, который вы предоставили, запрашивает функцию, которая не реализована.

Я подумал, что это может быть проблема с правами доступа к бакету (хотя это не совсем логично, поскольку та же конфигурация работала пару недель назад), но перечитав сообщение, кажется, что Discourse пытается выполнить действие, которое, э-э, не реализовано. (Что тоже кажется натянутым).

Загрузки в S3 в бакет Google (хотя и в другой) работают без проблем. Есть производственный сайт на версии 2.4.0.beta9 и тестовый сайт на 2.4.0.beta10 (я только что выполнил ещё одно обновление на тестовом сайте).

Это стандартная установка из двух контейнеров только со стандартными плагинами, при этом настройки S3 заданы через env: в файле .yml. РЕДАКТИРОВАНИЕ: Я удалил эти настройки ENV из yml и выполнил пересборку (команды destroy и start их не удалили), но проблема осталась.

Я не вижу никаких очевидных (для меня) коммитов, которые могли бы быть связаны с этим.

РЕДАКТИРОВАНИЕ: Есть ещё один стандартный экземпляр, работающий на 2.4.0.beta8 с теми же настройками, и он работает, так что, похоже, что-то изменилось между beta8 и beta9. Это действительно похоже на :bug:. @gerhard, не может ли это быть связано с вашими изменениями в системе резервного копирования?

P.S. Я проверил сайт, использующий DigitalOcean Spaces, и резервное копирование там работает без проблем.

Вы получаете ошибку сразу при переходе на /admin/backups? Я недавно ничего не менял в этой области, но мы обновили gem aws-s3 между версиями beta8 и beta10 с версии 1.36.1 до 1.60.1. Возможно, это больше не работает с Google buckets. Возможно, вы найдете причину в CHANGELOG. Вы можете протестировать разные версии gem, чтобы сузить круг поиска.

Да.

Чёрт.

Фу. Я напишу инженеру из Google, который, скорее всего, ничего не знает, и посмотрю, что ещё можно найти.

Огромное спасибо.

Итак, зайдя в контейнер, отредактировав Gemfile и изменив

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

на

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

а затем выполнив

bundle install --no-deployment
sv restart unicorn

чтобы проверить, сработало ли это, с помощью бинарного поиска по версиям выяснилось, что 1.51.0 — последняя рабочая версия. Значит, проблема возникла в версии 1.52.0, где была добавлена функция «Добавлена поддержка в SelectObjectContent для сканирования части объекта, указанной диапазоном сканирования».

Не уверен, что делать дальше. Думаю, стоит открыть issue на GitHub - aws/aws-sdk-ruby: The official AWS SDK for Ruby · GitHub, но не уверен, что им это интересно, верно? Возможно, стоит создать тикет в Google?

При этом Discourse по-прежнему работает для загрузки файлов в бакеты Google, но не для резервных копий.

По всей видимости, эта проблема уже решена, так как поддержка Google доступна по адресу: