Rake 업로드: 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 명령을 다시 실행해 보았는데, 위에서와서 정확히 같은 일이 다시 발생했습니다(출력도, 무한 루프도 동일함).

무슨 일이 일어나고 있는지, 혹은 이것이 문제가 되는 것인지 아니면 아닌 것인지 잘 모르겠지만 보고하려고 합니다. 어떤 생각이 있으신가요?

확인해 드릴 수 있습니다.

원본 데이터베이스가 마이그레이션될 때 S3 업로드를 활성화하기 위해 DISCOURSE_S3_XXX 변수가 설정된 새로운 이미지를 구축했습니다. 이렇게 하면 처음부터 모든 이미지가 S3에 저장될 것이라고 생각했지만, 안타깝게도 해당 백업을 복원하려고 할 때 S3로 마이그레이션하는 과정에서 실패합니다.

그 후, 모든 ENV 변수를 명령줄에 설정한 상태로 rake uploads:migrate_to_s3를 실행해 보았으나, OP(첫 번째 게시물)에서 설명한 무한 루프가 발생했습니다.

이어서, 모든 DISCOURSE_S3 설정을 명령줄에 포함하여 명령줄에서 복원을 시도해 보았습니다.

그렇게 하면 백업과 복원이 가능할 것이라 생각했지만, 역시 아니었습니다. 웹 인터페이스를 통한 복원은 실패했습니다. S3 매개변수를 모두 전달하지 않은 채로 명령줄에서 복원을 시도해도 실패합니다.

따라서 S3에 업로드된 파일이 포함된 백업을 복원하려면, 명령줄에서 복원을 수행하는 동시에 복원 시 S3 설정을 명령줄로 전달해야 하는 것으로 보입니다.

S3 업로드가 포함된 백업을 UX(사용자 인터페이스)에서 복원할 수 없는 것은 버그로 보입니다.

다음으로 복원을 시도하는 사람을 위해 :wink: @pfaffman 님이 추천하는 대로 명령줄 옵션을 모두 restore 명령과 같은 줄에 배치하는 정확한 구문을 공유합니다)… 변수 4개를 정의한 뒤, 마지막에 restore 명령을 실행하면 됩니다.

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