我在此发布此内容,因为 Configure an S3 compatible object storage provider for uploads 已设置为一个月后删除所有回复。
DO CDN 实现中缺少 content-encoding 确实令人沮丧,但这仅在 app.yml 中设置_所有_ S3 参数时才会发生。如果这些参数是通过 Web 管理控制台在站点设置中设置的,那么 DO 仅通过 CDN 提供 S3 上传内容,而站点资源仍从源服务器提供。
这似乎是有意为之,因为如果在 app.yml 中设置了 DISCOURSE_S3_CDN_URL 环境变量,它会覆盖资源的 CDN 设置,而仅在站点设置中声明该设置时则不会?
这有点不一致,但它允许仅将 DO CDN 用于 S3 上传,而不会破坏站点:
有两种方法可以实现这一点:
- 仅在站点设置中声明_所有_ S3 设置
rails c
SiteSetting.s3_upload_bucket="<bucket_name>/<uploads_folder>"
SiteSetting.s3_backup_bucket="<bucket_name>/<backups_folder>"
SiteSetting.enable_s3_uploads=true
SiteSetting.s3_access_key_id="<key>"
SiteSetting.s3_secret_access_key="<secret_key>"
SiteSetting.s3_endpoint="https://<sfo2>.digitaloceanspaces.com"
SiteSetting.s3_cdn_url="https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>"
SiteSetting.backup_location="s3"
- 在
app.yml中设置除DISCOURSE_S3_CDN_URL之外的所有 S3 设置,并在SiteSetting.s3_cdn_url中声明 DO CDN
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: <sfo2>
DISCOURSE_S3_ENDPOINT: https://<sfo2>.digitaloceanspaces.com
DISCOURSE_S3_ACCESS_KEY_ID: <key>
DISCOURSE_S3_SECRET_ACCESS_KEY: <secret_key>
# DISCOURSE_S3_CDN_URL: https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>
DISCOURSE_S3_BUCKET: <bucket_name>/<uploads_folder>
DISCOURSE_S3_BACKUP_BUCKET: <bucket_name>/<backup_folder>
DISCOURSE_BACKUP_LOCATION: s3
rails c
SiteSetting.s3_cdn_url="https://<bucket_name>.<sfo2>.cdn.digitaloceanspaces.com/<uploads_folder>"
@falco 如果您同意这一点,我可以更新原始的 wiki 主题。