Digitalocean ブロックストレージ 対 Amazon S3

これはここに投稿します。なぜなら、Configure an S3 compatible object storage provider for uploads は1ヶ月後にすべての返信が削除されるように設定されているためです。

DO CDNの実装においてcontent-encodingが欠落しているのは確かに残念ですが、これは app.yml 内で すべての S3パラメータを設定した場合にのみ発生します。それらのパラメータをWeb管理コンソール経由のサイト設定で設定する場合、DOはS3アップロードのみをCDN経由で提供し、サイトアセットはソースから提供されます。

これは意図的な設計のようです。なぜなら、app.yml で設定された DISCOURSE_S3_CDN_URL 環境変数はアセットのCDN設定も上書きしてしまう一方、サイト設定のみで宣言された場合はそうならないからです。

これは少し一貫性がありませんが、サイトが破損することなくDO CDNをS3アップロードのみに使用することを可能にします。

これには2つの方法があります。

  • すべての 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設定をシャドウし、DO CDNを SiteSetting.s3_cdn_url で宣言する
  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 もしこれに同意されるなら、元のウィキトピックを更新します。

「いいね!」 1