Проблемы с AWS CDN и S3

,

Фух! Это потребовало уйму времени и несколько часов (8 часов за два звонка) в разговоре с очень полезным инженером Amazon, но я, кажется, наконец разобрался. На сайте RepealOBBBA всё работает отлично, и мой процесс можно воспроизвести на других сайтах.

Возможно, я позже оформлю это в виде статьи, но пока несколько заметок:

  1. DISCOURSE_CDN_URL (если используется AWS S3) и DISCOURSE_S3_CDN_URL требуют собственных распределений CloudFront.
  2. DISCOURSE_CDN_URL не использует бакет.
  3. DISCOURSE_CDN_URL может быть CDN, отличным от AWS. Bunny.net работает отлично. (Мне сообщили, что Bunny Storage с поддержкой S3 должен выйти в первом квартале 2026 года.)
  4. CDN для DISCOURSE_CDN_URL и DISCOURSE_S3_CDN_URL могут быть брендированными URL-адресами при правильной настройке DNS.
  5. DISCOURSE_S3_CDN_URL требует бакета для загрузок.
  6. Бакет для загрузок должен иметь включённые ACL, параметр «Все (публичный доступ)» должен быть установлен в значение «Чтение», и необходимо задать политику для бакета.
  7. Бакет для резервных копий не требует ни ACL, ни политики.

Редактирование(я)

  1. Установите флажок в S3 «Использовать CDN URL для всех загрузок»: используйте CDN URL для всех файлов, загружаемых в S3, а не только для изображений. Невключение этой опции всегда приводило к сбоям в моём случае.

Представляю, многие прочитают вышеизложенное и подумают: «Ду-у-х, Фил, это же очевидно», но… моя голова, привыкшая к BBS, не поняла этого сразу.