S3, 자산 및 CDN 오류

,

안녕하세요, S3 (DigitalOcean), S3를 통한 Assets 및 CDN Endpoint와 관련하여 이상한 문제를 겪고 있습니다.

문제 설명:

오류가 발생하면 로딩 애니메이션만 보이며, 오류는 아래 이미지에 표시된 대로 나타납니다:

오류 발생 패턴은 다음과 같습니다:

/ CDN Endpoint “일반” Endpoint
DISCOURSE_S3_BUCKET 설정됨 :x: Pic1 :white_check_mark:
DISCOURSE_S3_BUCKET 설정 안 됨 :white_check_mark: :white_check_mark:
  • CDN Endpoint: https://<bucket>.fra1.cdn.digitaloceanspaces.com
  • “일반” Endpoint: https://<bucket>.fra1.digitaloceanspaces.com

현재 설정:

  DISCOURSE_USE_S3: true

  DISCOURSE_S3_ACCESS_KEY_ID: <token>
  DISCOURSE_S3_SECRET_ACCESS_KEY: <secret>
  DISCOURSE_S3_ENDPOINT: https://fra1.digitaloceanspaces.com
  DISCOURSE_S3_CDN_URL: https://<bucket>.fra1.cdn.digitaloceanspaces.com
  #DISCOURSE_S3_BUCKET: '<bucket>' # assets용
  DISCOURSE_S3_UPLOAD_BUCKET: '<bucket>'
  DISCOURSE_S3_REGION: fra1
  DISCOURSE_BACKUP_LOCATION: s3
  DISCOURSE_S3_BACKUP_BUCKET: '<bucket>/backups '
  DISCOURSE_S3_INSTALL_CORS_RULE: false

DISCOURSE_S3_BUCKET 변수를 사용하는 경우 다음 훅도 설정했습니다:

hooks:
  after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets

오류는 ‘올바른’ 설정 조합에서만 발생합니다. 아이디어가 있을까요? 필요하면 더 많은 정보를 제공할 수 있습니다.

다른 CDN이 필요합니다. Bunny.net은 사용하기 쉽습니다.

Bunny가 잘 작동하고 설정하기도 쉽다는 데 동의합니다.

최근 포럼에서 Stackpath(작년에 CDN 가격이 3배로 올랐습니다 :scream_cat:)에서 Bunny로 변경했습니다.

보너스로 중국 사용자에게도 이점이 있었습니다:

제안해 주셔서 감사합니다!

저는 오픈 소스 프로젝트에 참여하고 있으며, 현재 트래픽 수준으로는 다른 CDN을 사용하는 것이 정당화되지 않습니다 :sweat_smile:. DigitalOcean을 사용하는 이유는 오픈 소스 프로젝트를 위한 무료 스폰서십 프로그램을 제공하고 있기 때문입니다.

문제는 다음과 같습니다. 현재 DO(DigitalOcean)와 함께 어느 정도 작동하고 있습니다(이미지와 업로드된 콘텐츠가 동기화됨). DISCOURSE_S3_UPLOAD_BUCKET은 설정했지만 DISCOURSE_S3_BUCKET은 설정하지 않았습니다. 그렇다면 "awfully broken(극도로 깨져 있다)"라는 표현을 좀 더 자세히 설명해 주실 수 있을까요?

짜증 나는 점은 다음과 같습니다:

  • rake uploads:s3_migration_status와 같은 명령어는 DISCOURSE_S3_BUCKET에 의존하기 때문에 작동하지 않습니다.
  • CDN을 에셋(assets)에 사용할 수 없습니다.