Ошибка S3, активов и CDN

,

Привет! У меня возникла странная проблема, касающаяся S3 (DigitalOcean), активов (через S3) и CDN-эндпоинта.

Описание проблемы:

В случае ошибки отображается только анимация загрузки, а сами ошибки выглядят так, как показано на изображении ниже:

Это схема ошибки:

/ CDN-эндпоинт «Обычный» эндпоинт
DISCOURSE_S3_BUCKET УСТАНОВЛЕН :x: Pic1 :white_check_mark:
DISCOURSE_S3_BUCKET НЕ УСТАНОВЛЕН :white_check_mark: :white_check_mark:
  • CDN-эндпоинт: https://<bucket>.fra1.cdn.digitaloceanspaces.com
  • «Обычный» эндпоинт: 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>' # для активов
  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 в прошлом году утроились :scream_cat:) на Bunny для своего форума.

В качестве бонуса это также оказалось выгодным для пользователей из Китая:

Спасибо за предложение!

Я участвую в проекте с открытым исходным кодом, и на данный момент трафик не оправдывает использование другой CDN :sweat_smile:. Мы используем DigitalOcean, потому что у них есть программа бесплатной спонсорской поддержки для проектов с открытым исходным кодом.

Дело в следующем: сейчас у нас уже кое-как работает интеграция с DO (изображения и загруженные файлы синхронизируются). Я установил переменную DISCOURSE_S3_UPLOAD_BUCKET, но не DISCOURSE_S3_BUCKET. Не могли бы вы подробнее объяснить, что значит «ужасно сломано»?

Проблема в том, что:

  • команды вроде rake uploads:s3_migration_status не работают, так как они зависят от DISCOURSE_S3_BUCKET;
  • я не могу использовать CDN для статических ресурсов.