S3 스토리지에 연결된 경우, Discourse는 이미 로컬에 있는 데이터를 마이그레이션할 수 있나요?

Discourse의 백업은 zip 아카이브입니다

압축을 풀면 하나는 데이터베이스이고, 다른 하나는 업로드된 파일(uploads)입니다.

S3 스토리지를 사용하는 경우, 이 Uploads는 백업 파일에 나타나지 않으며, 대신 객체 스토리지에 저장됩니다.

각 백업은 기본적으로 데이터베이스만 백업합니다. 다만 S3에 저장된 Uploads의 백업을 허용하도록 설정 옵션이 켜져 있는 경우를 제외합니다.

질문 시간

현재 로컬 스토리지를 일정 기간 사용했고, 백업 파일 안의 Uploads가 이미 매우 커진 상태라면,

백업 파일 안의 Uploads를 수동으로 S3 스토리지의 Uploads에 덮어쓰기(>>>>>>>>)할 수 있을까요?

원래 토픽에서 이미 참조되었던 이미지 파일은 제대로 표시될까요?

(Discourse는 이미지를 저장할 때 무작위 이름을 사용하여 구별합니다. 예: upload://ob9K7RhMbch2b2oTnJNi0bYCNPi.png)


Discourse의 백업은 압축 파일입니다

압축을 풀면 하나는 데이터베이스이고, 다른 하나는 업로드된 파일(uploads)입니다.

S3 스토리지를 사용하는 경우, 이 Uploads는 백업 파일에 나타나지 않으며, 대신 객체 스토리지에 저장됩니다.

각 백업은 데이터베이스만 백업합니다. 다만 S3에 저장된 Uploads의 백업을 허용하는 설정 옵션을 활성화한 경우를 제외합니다.

질문 시간

현재 로컬 스토리지를 일정 기간 사용했고, 백업 파일 안의 Uploads가 이미 매우 커진 상태라면,

백업 파일 안의 Uploads를 수동으로 S3 스토리지의 Uploads에 덮어쓰기(>>>>>>>>)할 수 있을까요?

원래 토픽에서 이미 참조되었던 이미지 파일은 제대로 표시될까요?

(Discourse는 이미지를 저장할 때 무작위 이름을 사용하여 구별합니다. 예: upload://ob9K7RhMbch2b2oTnJNi0bYCNPi.png)

프론트엔드는 cooked 콘텐츠에 기반하여 이미지 주소를 가져오므로, 단순히 파일을 S3로 복사한 경우에도 브라우저는 여전히 로컬 저장소의 URL에서 이미지를 다운로드하려고 시도합니다.

로컬 저장소의 콘텐츠를 S3로 마이그레이션하는 가장 간단한 방법은 마이그레이션 스크립트 rake uploads:migrate_to_s3를 실행하는 것입니다.


The frontend retrieves images based on the cooked content, meaning that if you only copy the files to S3, the browser will still attempt to fetch images from the local storage URLs.

The simplest way to migrate content from local storage to S3 is to run the migration script rake uploads:migrate_to_s3.

rake uploads:migrate_to_s3는 무엇인가요?

다음 링크를 참고할 수 있습니다.