스케일웨이가 무언가를 변경한 건가요? 48시간 전까지는 저에게 정상적으로 작동했지만, 이제 더 이상 작동하지 않습니다.
요청料이 결제되었나요? 어떤 문제가 있나요? 이미지가 정상적으로 동작하나요? 전부 사라진 건가요, 아니면 새 이미지를 추가할 수 없는 건가요?
약간의 추가 지원을 해주실 수 있을까요? 예를 들어, 중국의 Tencent COS는 중국 사용자에게 더 편리하며, Tencent Cloud의 COS는 전 세계에 CDN 노드를 갖추고 있어 접근 속도가 매우 빠릅니다.
직접 해보셨나요? 제대로 작동하나요?
테스트 환경에서 사용해 보았지만, 현재는 텐센트 COS에만 백업할 수 있습니다. 중국의 개발자들이 더 편리하게 사용할 수 있도록 Discourse 공식에서 텐센트 COS 지원을 추가해 주시기를 바랍니다.
지금까지 무엇을 했고, 어떤 오류나 문제가 있었는지 공유해 주셔야 할 것 같습니다. 그러면 누군가가 작동하도록 만드는 방법을 제안해 줄 수도 있습니다. 다른 예제들을 살펴보고, 이를 참고하여 작동하게 만들 수 있는지 확인해 보실 수도 있습니다.
핵심 코드에서 이를 지원하기 위해 변경을 가할 가능성은 낮을 것으로 보입니다.
Backblaze:
- 계정에서 B2 버킷을 설정했습니다.
app.yml의env섹션에 관련 정보를 추가했습니다../launcher rebuild app을 실행했습니다.
…하지만 Discourse 인스턴스 대시보드에서 해당 설정이 적용되었음을 확인하는 메시지가 보이지 않습니다. 어디를 확인해야 할까요?
안녕하세요,
Cloudflare R2를 업로드와 백업 양쪽에 성공적으로 테스트하고 사용했습니다. 자세한 내용은 여기에서 확인하실 수 있습니다: Cloudflare R2: Navigating Setup and Handling Configuration Errors - #40 by kamaljain
귀측에서도 테스트를 진행하여 Cloudflare R2의 “Works with Discourse” 항목을 "예"로 검토해 주시기를 요청드립니다. 실제로 S3보다 사용이 더 쉽고 경제적이며, 저장 용량이 10GB 미만이면 무료입니다.
저도 멀티사이트 환경에서 설정을 테스트해 보았고, 정상적으로 작동하는 것 같습니다.
백업 목록을 가져올 수 있는지 궁금한 부분이 있어서, 제 설정을 확인해 보겠습니다.
형, 나랑 좀 이야기 나눌 수 있어? minio 설정할 때 문제가 좀 생겼거든. 고마워.
iDrive 설정
iDrive의 E2 버전 s3 스토리지가 다음 설정과 함께 완벽하게 작동한다는 것을 보고드립니다:
yaml 파일의 ENV 설정
iDrive 설정에서 버킷에 최소한 Public(공개) 및 Read(읽기) 권한이 있는지 확인하세요.
저는 uploads와 backups를 공유하는 하나의 버킷에 대해 다음 설정을 사용합니다.
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: your-region
DISCOURSE_S3_ENDPOINT: https://your-idrive-endpoint.dev
DISCOURSE_S3_ACCESS_KEY_ID: your-access-key
DISCOURSE_S3_SECRET_ACCESS_KEY: your-secret-key
DISCOURSE_S3_CDN_URL: https://your-custom-cdn-url.com/uploads
DISCOURSE_S3_BUCKET: your-bucket-name/uploads
DISCOURSE_S3_BACKUP_BUCKET: your-bucket-name/backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
기본적으로 iDrive에는 Share everything in this region with every origin(이 지역의 모든 것을 모든 원본과 공유)가 설정되어 있으므로, 소스에 관계없이 기본적으로 작동해야 합니다. 원하시면 자신의 도메인으로 제한할 수 있습니다.
Cloudflare 원본 인증서를 사용하여 iDrive 엔드포인트를 가리키는 CNAME을 생성합니다.
기존 첨부 파일 동기화
재빌드(Rebuild)
이 ENV 설정을 변경한 후 앱을 재빌드하세요.
업로드 및 Rebake
그런 다음 컨테이너에 진입하여 다음을 실행하세요.
rake uploads:migrate_to_s3
업로드 과정을 확인한 후 다음을 실행하세요.
rake posts:rebake_uncooked_posts
컨테이너를 종료합니다.
yaml 파일의 hooks 섹션에 추가
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
이는 첨부 파일이 업로드된 후 js/css 관련 파일이 iDrive에 업로드되도록 보장합니다. 그렇지 않으면 브라우저 콘솔에 모든 파일이 누락되었음을 알리는 오류가 많이 발생하게 됩니다.
재빌드(Rebuild)
에셋 명령어가 추가된 후 다시 재빌드하세요.
모든 것이 정상적으로 작동해야 합니다!
아마도 Hetzner의 Object Storage 서비스를 표에 추가해야 하지 않을까요?
Contabo를 파일 업로드로 사용하는 데 성공했습니다. 이전(이관된) 파일도, 새 업로드도 모두 정상적으로 작동했습니다. 제 경우 버킷 URL은 https://eu2.contabostorage.com/mybucket이었습니다.
핵심은 버킷 이름을 EU2로 설정하고 엔드포인트를 https://contabostorage.com/mybucket으로 설정하는 것이었습니다.
유일한 문제는 사이트를 로드할 때 플러그인의 js와 같은 다른 파일들도 버킷에서 요청되는데, 파일이 사용 불가능하여 로드되지 않는다는 점입니다. 아마도 CDN URL을 버킷과 동일하게 설정했기 때문인 것 같습니다. 아직 이 부분이 명확하지 않으니, 어떻게 설정해야 하는지 알려주실 수 있나요? 제가 이해한 바로는 메인 도메인(discourse 서버)을 가리키는 CNAME 주소를 생성한 후 Cloudflare를 통해 프록시해야 하는 것인데, 맞나요?
이 부분을 놓치셨습니다:
내가 분명히 그렇게 했을 텐데, 아마 실수를 한 것 같기도 합니다. 결국 백업을 복원해서, 기억에 의존해서 말하고 있습니다… 그런데 왜 버킷으로 CDN을 설정하는 것을 비추천하는 걸까요? 어떤 문제가 생길 수 있나요? 내일 다시 시도해 보겠습니다.
감사합니다
설명한 문제가 버킷 URL을 CDN URL로 설정했기 때문이라고는 생각하지 않습니다. (즉, 업로드는 되지만 에셋은 안 되는 경우 말이죠.)
내일 업데이트해드릴게요. 감사합니다
그리고 성공했습니다 ![]()
다른 분들에게 도움이 되고자 제가 수행한 단계를 단계별로 정리했습니다:
app.yml 파일을 편집하고 다음 내용을 추가했습니다.
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
이 내용을 hooks: 섹션 바로 아래(즉, git clone plugins… 바로 뒤에)에 추가했습니다.
그리고 다음 환경 변수를 이메일 설정 바로 아래에 추가했습니다.
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: EU
DISCOURSE_S3_ENDPOINT: https://contabostorage.com/bucketname
DISCOURSE_S3_ACCESS_KEY_ID: accesskey
DISCOURSE_S3_SECRET_ACCESS_KEY: secretaccesskey
DISCOURSE_S3_CDN_URL: https://eu2.contabostorage.com/randomlettersthatcontaboaddstothelinks:bucketname
DISCOURSE_S3_BUCKET: eu2
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_INSTALL_CORS_RULE: false
그 후 Discourse 메뉴에서 동일한 값을 설정하고 S3 업로드를 활성화했습니다.
다음 명령을 실행하여 앱을 다시 빌드했습니다.
cd /var/discourse
sudo ./launcher rebuild app
그 다음
./launcher enter app
rake uploads:migrate_to_s3
이 과정에는 시간이 조금 걸립니다. 제 경우를 보면 몇 시간(파일 80,000개, 100GB)이 소요되었습니다.
완료되면 다음 명령을 실행합니다.
rake posts:rebake_uncooked_posts
업데이트: 일부 사용자는 사이트(자산 및 파일)를 로드하지 못했습니다. contabostorage.com 도메인이 일부 차단 목록에 피싱 사이트로 포함되어 있는 것으로 확인되었습니다. 해결 방법은 간단했습니다:
여기에 설명된 대로 files.mydomain.com과 같은 서브도메인을 설정합니다: Can I Setup a Custom Domain for My Object Storage? : Contabo
app.yml에서 DISCOURSE_S3_CDN_URL을 https://files.mydomain.com으로 업데이트했습니다.
그리고
cd /var/discourse
sudo ./launcher rebuild app
작업을 완료하기 위해
./launcher enter app
rake posts:rebake
이제 모든 자산과 업로드 파일이 https://files.mydomain.com/pathtofile/file.ext에서 로드됩니다.
완료
