这不是一篇手把手的迁移教程,这里仅作为本人的迁移流水账,如果您在寻求迁移教程,建议您查看这篇文章:点击前往文章
背景介绍
最近由于缓存的媒体太多,遂准备将Mastodon缓存的媒体迁移到亚马逊S3上,本来准备迁到wasabi s3上的,但是由于注册了一个体验账号发现有点没吃透它的配置,所以还是决定先迁移到aws s3上,毕竟个人感觉相比wasabi,aws s3要相对来说简单一些,所以先熟悉一下s3这个系统再说。
过程
- 首先先在服务端上安装awscli
- 配置awscli,这里我选择的是“美国西部(俄勒冈) us-west-2”
#AWS配置 $ aws configure AWS Access Key ID [None]: #Access Key AWS Secret Access Key [None]: #Access Secret Default region name [None]: us-west-2 Default output format [None]: #这里点回车即可
- 增加一个媒体用的地址,如media.example.com到nginx的配置内,这样不会暴露后端存储桶的地址,防止恶意刷流量,造成损失,同时也可以对经常使用的媒体进行缓存等优势,配置模板:官方文档
- 将Mastodon的配置调整为S3,新缓存、上传的媒体将会存储到S3内
S3_ENABLED=true #开启Mastodon S3存储 S3_BUCKET=example-bucket #存储桶名称 AWS_ACCESS_KEY_ID= #Access Key AWS_SECRET_ACCESS_KEY= #Access Secret S3_REGION=us-west-2 #存储桶区域 S3_PROTOCOL=https #这里使用https就好 S3_HOSTNAME=s3-us-west-2.amazonaws.com #Endpoint名 S3_ALIAS_HOST=media.example.com #用户访问媒体的地址,即刚刚配置的nginx的网址
- 这时候媒体就已经开始在S3内缓存了,只需要将旧媒体同步到S3上就算完毕了,运行前记得将命令运行在tmux或者screen内,方便ssh断线以后也不会影响同步,同步完毕以后,可以删除本地文件。
#基本格式如下: $ aws s3 sync 本地文件地址 s3://存储桶名称/ --endpoint-url=Endpoint地址 --acl public-read #示例命令行: $ aws s3 sync /home/mastodon/live/public/system s3://example-bucket/ --endpoint-url=https://s3.uswest-2.amazonaws.com --acl public-read