将长毛象的媒体文件迁移至S3

st 发布于 2021-08-10 824 次阅读


准备工作

需要准备好的有一个bucket以及一个对于该bucket有操作权限的user。
记录下.env.production中要用到的内容:

S3_BUCKET=$S3_BUCKET
AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY
AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS
S3_REGION=$S3_REGION
S3_PROTOCOL=https
S3_HOSTNAME=s3-$S3_REGION.amazonaws.com
S3_ENDPOINT=$S3_ENDPOINT

复制现有文件

运行apt-get install s3cmd安装s3cmd,可以运行s3cmd --configure进行配置,也可以直接按照官方文档在root文件夹下创建.s3cfg文件。

开始复制前可以先用tootctl清理一下文件,停止服务运行,以免两边出现媒体文件不同步。

之后cd到长毛象文件夹,运行s3cmd --acl-public sync --add-header="Cache-Control:public, max-age=315576000, immutable" public/system/ s3://$S3_BUCKET复制媒体文件。

启用新配置

按照情况修改.env.production,修改完成后重启服务即可。

相关文档

Getting Mastodon working with Amazon S3 file-hosting

Moving Mastodon's media files to Wasabi Object Storage