Rake uploads:migrate_to_s3 выполняется бесконечно

Когда я запускаю эту команду, получаю:

Migrating uploads to S3 for 'default'...
Uploading files to S3...
 - Listing local files
 => 23 files
 - Listing S3 files
. => 94 files
 - Syncing files to S3
.......................
Updating the URLs in the database...
Removing old optimized images...
Flagging all posts containing lightboxes for rebake...
4 posts were flagged for a rebake
4 posts still require rebaking and will be rebaked during regular job
Done!
Migrating uploads to S3 for 'default'...
Uploading files to S3...
 - Listing local files
 => 23 files
 - Listing S3 files
. => 94 files
 - Syncing files to S3
.......................
Updating the URLs in the database...
Removing old optimized images...
Flagging all posts containing lightboxes for rebake...
4 posts were flagged for a rebake
4 posts still require rebaking and will be rebaked during regular job
Done!
Migrating uploads to S3 for 'default'...
Uploading files to S3...
 - Listing local files
 => 23 files
 - Listing S3 files
. => 94 files
 - Syncing files to S3
.......................
Updating the URLs in the database...
Removing old optimized images...
Flagging all posts containing lightboxes for rebake...
4 posts were flagged for a rebake
4 posts still require rebaking and will be rebaked during regular job
Done!
Migrating uploads to S3 for 'default'...
Uploading files to S3...
 - Listing local files
 => 23 files
 - Listing S3 files
. => 94 files
 - Syncing files to S3
.......................

и процесс просто продолжается бесконечно.

В итоге я нажал Ctrl-C и выполнил rake posts:rebake, что сработало без проблем.

Затем, просто из интереса, я снова попробовал команду rake uploads:migrate_to_s3, и она снова выдала точно такой же результат, как и выше (то же самое сообщение, тот же бесконечный цикл).

Не совсем понимаю, что происходит, и является ли это проблемой, но хотел сообщить. Есть какие-то идеи?

Я могу это подтвердить.

Я создал новый образ с переменными DISCOURSE_S3_XXX, настроенными для включения загрузки в S3 при миграции исходной базы данных. Мне казалось, что это автоматически перенесёт все изображения в S3 с самого начала, но, увы, восстановление этой резервной копии не удаётся, когда система пытается выполнить миграцию в S3.

Затем я попытался выполнить команду rake uploads:migrate_to_s3 (передав все переменные окружения в командной строке перед ней) и столкнулся с бесконечным циклом, описанным в исходном сообщении.

После этого я попробовал выполнить восстановление через командную строку, указав все параметры DISCOURSE_S3 в командной строке.

Думал, что, возможно, тогда смогу сделать резервную копию и восстановить её, но нет. Восстановление через веб-интерфейс не удаётся. Восстановление через командную строку без передачи всех параметров S3 также не удаётся.

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

Невозможность восстановить резервную копию с загрузками в S3 через пользовательский интерфейс выглядит как ошибка.

Для следующего человека, который попытается выполнить восстановление :wink: вот точный синтаксис для размещения всех опций командной строки в одной строке с командой восстановления, как рекомендует @pfaffman… просто определите все четыре переменные, а затем в самом конце укажите команду восстановления.

DISCOURSE_S3_BUCKET=my-forum-storage DISCOURSE_S3_REGION=us-east-1 DISCOURSE_S3_ACCESS_KEY_ID=asdasdasdasdasdadsasdas DISCOURSE_S3_SECRET_ACCESS_KEY=aasdasdasdasdasdadsasdasasdasdasdasd discourse restore my-forums-2020-04-11-232922-v20200408121834.tar.gz

@pnoeric Бесконечный цикл исправлен в FIX: Infinite loop in migrate_to_s3 rake task · discourse/discourse@baae0e7 · GitHub

@pfaffman Проблема должна быть исправлена в FIX: Restore to S3 didn't work without env variables · discourse/discourse@c6b411f · GitHub

О, ура! Большое спасибо. (Иногда одного :heart: недостаточно.)

Да, я тоже это подтверждаю!! Спасибо за такую оперативность. Очень ценю. E