S3가 구성되어 있지 않은 것 같습니다. 아마도 구 서버에 유효한 S3 위치로 매핑되지 않은 오래된 데이터가 남아 있는 것 같습니다.
구 서버로 돌아가 보니 2개의 버킷이 구성되어 있습니다. 하나는 백업용, 다른 하나는 미디어용입니다. 가이드를 따라 AWS S3와 CDN을 설정했습니다.
실행에 실패한 rake uploads:migrate_to_s3 명령을 실행한 후 posts:rebake를 실행해 보았더니 오류 수가 줄어든 것 같지만, 여전히 실패합니다:
Please note that migrating to S3 is currently not reversible!
[CTRL+c] to cancel, [ENTER] to continue
Migrating uploads to S3 for 'default'...
Uploading files to S3...
- Listing local files
=> 208 files
- Listing S3 files
. => 978 files
- Syncing files to S3
................................................................................................................................................................................................................
Updating the URLs in the database...
Removing old optimized images...
Flagging all posts containing lightboxes for rebake...
15 posts were flagged for a rebake
rake aborted!
FileStore::ToS3MigrationError: 1 posts are not remapped to new S3 upload URL. S3 migration failed for db 'default'.
/var/www/discourse/lib/file_store/to_s3_migration.rb:132:in `raise_or_log'
/var/www/discourse/lib/file_store/to_s3_migration.rb:87:in `migration_successful?'
/var/www/discourse/lib/file_store/to_s3_migration.rb:373:in `migrate_to_s3'
/var/www/discourse/lib/file_store/to_s3_migration.rb:66:in `migrate'
/var/www/discourse/lib/tasks/uploads.rake:123:in `migrate_to_s3'
/var/www/discourse/lib/tasks/uploads.rake:102:in `block in migrate_to_s3_all_sites'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:80:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rails_multisite-4.0.0/lib/rails_multisite/connection_management.rb:90:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:100:in `migrate_to_s3_all_sites'
/var/www/discourse/lib/tasks/uploads.rake:96:in `block in <main>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => uploads:migrate_to_s3
(See full trace by running task with --trace)
문제를 일으키는 게시물을 식별하기 위해 migrate_to_s3를 상세 모드(verbose mode)로 실행하는 방법이 있을까요?
FileStore::ToS3MigrationError: 1 posts are not remapped to new S3 upload URL. S3 migration failed for db 'default'.
이 경우 가장 좋은 방법은 업로드가 잘못된 위치에 있는 게시물을 수정하는 것입니다. 하지만 이 테스트에서 오탐(false positive)이 발생할 수 있는 경우가 있다고 생각합니다. 그런 경우에는 rake 작업에 있는 스위치를 사용하여 프로세스를 일시 중지하고 문제를 수정할 수 있습니다. 제가 빠르게 찾지 못하고 있으며, 이 정보가 있어야 할 곳인 Backup discourse from the command line 에도 없습니다. 현재 다른 작업을 진행 중이라 당장 찾지 못하겠습니다.