`rake uploads:migrate_to_s3` завершается ошибкой `Aws::S3::Errors::SignatureDoesNotMatch`

Загрузка локальных файлов в DigitalOcean Spaces (S3) с помощью rake uploads:migrate_to_s3 запускается и мигрирует часть файлов, но затем внезапно прерывается на одном файле с ошибкой Aws::S3::Errors::SignatureDoesNotMatch.

Когда этот файл загружается вручную с использованием скрипта, упомянутого в Extend S3 configuration for other S3 API compatible services - #4 by rishabh, и скрипт запускается повторно, загружаются ещё некоторые файлы, но затем он снова прерывается на другом файле.

Может ли кто-нибудь из команды посмотреть на эту проблему? У меня есть почти 50 ГБ файлов, которые мне нужно перенести с локального хранилища в S3 в ближайшее время (конфигурация и загрузка новых файлов работают без проблем).

Меня устроит даже временное решение: я изучил код to_s3_migration.rb и могу определить проблемные файлы, но при их загрузке в S3 с помощью Aws::S3::Resource из упомянутого выше скрипта метаданные файла отсутствуют, а при скачивании теряется исходное имя файла.

Поиск в интернете выдаёт множество проблем, связанных с SignatureDoesNotMatch: в одной из них упоминается, что версия алгоритма подписи, используемая гемом, может быть неверной, но это выходит за рамки моих текущих навыков для проверки.

Вот конфигурация для rake:

DISCOURSE_S3_ACCESS_KEY_ID="id" \
DISCOURSE_S3_SECRET_ACCESS_KEY="secret" \
DISCOURSE_S3_REGION="sfo2" \
DISCOURSE_S3_BUCKET="mybucket/uploads" \
DISCOURSE_S3_ENDPOINT="https://sfo2.digitaloceanspaces.com" \
DISCOURSE_S3_CDN_URL="https://mybucket.sfo2.cdn.digitaloceanspaces.com" \
rake uploads:migrate_to_s3 --trace

Оказалось, что DO Spaces не принимает последовательные пробелы в метаданных файла и завершается ошибкой, не имеющей к этому отношения. Возможно, стоит проверить, есть ли у AWS S3 такое же ограничение.

В любом случае, быстрое решение состояло в том, чтобы объединить несколько пробелов в один:

              %Q{attachment; filename="#{upload.original_filename.gsub(/\s+/, ' ')}"}

Это официальное исправление? А как насчёт других ошибок при миграции в S3?