Digitalocean block storage VS amazon S3

Vou postar isso aqui, porque o tópico Configure an S3 compatible object storage provider for uploads está configurado para excluir todas as respostas após um mês.

A falta de content-encoding na implementação do CDN da DO é definitivamente frustrante, mas isso só ocorre ao definir todos os parâmetros S3 dentro do app.yml. Se esses parâmetros forem definidos nas configurações do site via console de administração web, a DO servirá apenas os uploads S3 via CDN, enquanto os ativos do site ainda serão servidos da origem.

Parece que isso é intencional, pois a variável de ambiente DISCOURSE_S3_CDN_URL, se definida no app.yml, substitui a configuração do CDN também para os ativos, enquanto essa mesma configuração, quando declarada apenas nas configurações do site, não faz isso?

Isso é um pouco inconsistente, mas permite que o CDN da DO seja usado apenas para uploads S3, sem quebrar o site:

Existem duas maneiras de fazer isso:

  • declarar todos os configurações S3 apenas nas configurações do site
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"
  • replicar todas as configurações S3 exceto DISCOURSE_S3_CDN_URL no app.yml, e declarar o CDN da DO em 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, se você concordar com isso, posso atualizar o tópico original da wiki.