提醒大家在选择对象储存服务商时要慎重考虑,不要因为追求免费而放松对资源安全性和可靠性的要求。
为了追求免费,我的 Mastodon 实例一直在使用 Scaleway S3 作为静态资源仓库。然而,之前遭遇了一次严重的可用性问题,导致写入的图片无法访问。为了避免类似情况再次发生,我不得不连夜将资源从 Scaleway S3 迁移到 Cloudflare R2。
R2 价格算是比较低廉的,无固定月费:
项目 | 免费额度 | 费用 |
---|---|---|
存储 | 10 GB/月 | 0.015 美元/GB |
A类操作:改变状态 | 100万次/月 | 4.50 美元/百万次 |
B类操作:读取现有状态 | 1000万次/月 | 0.36 美元/百万次 |
Mastodon 配置 Cloudflare R2 有个小坑,必须要设置权限才能上传成功,需要在 .env.production
设置:
S3_PERMISSION=private
完整的配置如下:
S3_ENABLED=true
S3_PROTOCOL=https
S3_REGION=auto
S3_ENDPOINT=https://[HIDDEN].r2.cloudflarestorage.com
S3_HOSTNAME=pub-[HIDDEN].r2.dev
S3_BUCKET=[HIDDEN]
S3_PERMISSION=private
AWS_ACCESS_KEY_ID=[HIDDEN]
AWS_SECRET_ACCESS_KEY=[HIDDEN]
S3_ALIAS_HOST=s3assets.mastodon.instance