결국 이렇게 해결했습니다:
이 설정들을 app.yml 구성 파일에 넣어야 비로소 rake가 올바르게 실행되었습니다. /admin/site_settings/ 영역에만 있으면 rake가 제대로 실행되지 않았습니다. 다음과 같은 오류가 발생했습니다:
ERROR: Ensure S3 is configured in config/discourse.conf or environment vars
해당 설정은 여기서 가져왔습니다… Configure an S3 compatible object storage provider for uploads
구체적으로, 각 줄 앞에 두 개의 공백을 넣은 커스텀이 아닌 Spaces 설정을 사용했습니다. …
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: whatever
DISCOURSE_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
DISCOURSE_S3_ACCESS_KEY_ID: myaccesskey
DISCOURSE_S3_SECRET_ACCESS_KEY: mysecretkey
DISCOURSE_S3_CDN_URL: https://nyc3.cdn.digitaloceanspaces.com
DISCOURSE_S3_BUCKET: my-files
DISCOURSE_S3_BACKUP_BUCKET: my-files/my-backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
참고: DISCOURSE_S3_REGION은 실제 S3 리전(예: us-west-1)으로 오해될 수 있는 값이 아니라 문자 그대로 "whatever"라고 입력해야 합니다.
또한 ##Plugins go here area의 hooks 섹션에 이 설정들도 추가했습니다…
after_assets_precompile:
- exec:
cd: $home
cmd:
- sudo -E -u discourse bundle exec rake s3:upload_assets
- sudo -E -u discourse bundle exec rake s3:expire_missing_assets
지난번에 문제가 생긴 부분이 바로 여기였습니다. 이 설정을 넣고 재빌드한 후, 브라우저로 포럼을 열려고 하니 로딩 화면이 나타났습니다.
아직 업데이트되지 않은 에셋을 찾고 있기 때문만입니다. 이제 앱 안에서 rake를 실행할 때입니다…
./launcher enter app
rake s3:upload_assets
이것이 실행된 후, 항목 수가 증가하고 버킷에 “assets” 폴더가 나타났습니다…
그 후 포럼이 올바르게 로딩되기 시작했습니다. /admin/site-settings 영역에서 보이는 S3 관련 설정은 이것들뿐입니다…
모든 파일을 업로드하기 위해 이것을 실행했고, URL이 기존 경로에서 새(비-CDN) 경로로 업데이트되었습니다.
rake uploads:migrate_to_s3 --trace
완료된 후 항목 수가 세 배 이상 증가했습니다.
눈에 띈 유일한 점은, 기존 게시물의 이미지 경로가 S3 ENDPOINT URL을 사용했던 반면, 새로 게시된 이미지는 S3 CDN URL을 사용했다는 것입니다.
https:/my-storage.sfo3.digitaloceanspaces.com/
vs
https:/my-storage.sfo3.cdn.digitaloceanspaces.com/
적어도 모두 S3를 사용하고 있으므로 크게 신경 쓰지 않았습니다.
하지만 이것을 실행해 보았습니다…
rake posts:rebake

메모리가 부족해서 프로세스가 종료되었습니다. 대신 이것을 실행해 보았습니다…
rake posts:rebake_uncooked_posts
몇 번이나 메모리가 부족해서 스스로 재시작되었고, 다시 메모리가 부족해졌습니다. 다시 실행했습니다. 결국 모두 처리를 마쳤습니다.
100%까지 모두 실행된 후, 기존과 새로운 게시물의 모든 링크가 마침내 S3 CDN URL 경로를 사용하게 되었습니다. 65.9 GB의 저장 공간에 34,062개 이상의 항목(백업은 <9 GB).
백업을 포함하여 이제 모든 것이 S3에서 작동하게 되어 정말 기쁩니다. 아, 백업을 언급했으니 하나 실행할 좋은 타이밍일 것 같습니다!
누군가에게 도움이 되기를 바랍니다.
행운을 빕니다!