Я размещаю это здесь, так как тема Configure an S3 compatible object storage provider for uploads настроена на удаление всех ответов через месяц.
Отсутствие заголовка content-encoding в реализации CDN от DigitalOcean, безусловно, неприятно, но это происходит только при установке всех параметров S3 внутри app.yml. Если эти параметры заданы в настройках сайта через веб-консоль администратора, то DO использует CDN только для загрузки S3, а ресурсы сайта по-прежнему обслуживаются из источника.
Похоже, что это сделано намеренно, так как переменная окружения DISCOURSE_S3_CDN_URL, если она установлена в app.yml, переопределяет настройку CDN и для ресурсов сайта, тогда как это же значение, указанное только в настройках сайта, не делает этого?
Это немного несогласованно, но позволяет использовать CDN от DigitalOcean только для загрузок S3, не ломая при этом сайт:
Есть два способа сделать это:
- указать все настройки S3 только в настройках сайта
rails c
SiteSetting.s3_upload_bucket="<имя_бакета>/<папка_загрузок>"
SiteSetting.s3_backup_bucket="<имя_бакета>/<папка_резервных_копий>"
SiteSetting.enable_s3_uploads=true
SiteSetting.s3_access_key_id="<ключ>"
SiteSetting.s3_secret_access_key="<секретный_ключ>"
SiteSetting.s3_endpoint="https://<sfo2>.digitaloceanspaces.com"
SiteSetting.s3_cdn_url="https://<имя_бакета>.<sfo2>.cdn.digitaloceanspaces.com/<папка_загрузок>"
SiteSetting.backup_location="s3"
- продублировать все настройки S3 кроме
DISCOURSE_S3_CDN_URLвapp.ymlи указать CDN от DO вSiteSetting.s3_cdn_url
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: <sfo2>
DISCOURSE_S3_ENDPOINT: https://<sfo2>.digitaloceanspaces.com
DISCOURSE_S3_ACCESS_KEY_ID: <ключ>
DISCOURSE_S3_SECRET_ACCESS_KEY: <секретный_ключ>
# DISCOURSE_S3_CDN_URL: https://<имя_бакета>.<sfo2>.cdn.digitaloceanspaces.com/<папка_загрузок>
DISCOURSE_S3_BUCKET: <имя_бакета>/<папка_загрузок>
DISCOURSE_S3_BACKUP_BUCKET: <имя_бакета>/<папка_резервных_копий>
DISCOURSE_BACKUP_LOCATION: s3
rails c
SiteSetting.s3_cdn_url="https://<имя_бакета>.<sfo2>.cdn.digitaloceanspaces.com/<папка_загрузок>"
@falco, если вы согласны с этим, я могу обновить исходную тему в вики.