将Mastodon媒体迁移到AWS S3上

这不是一篇手把手的迁移教程,这里仅作为本人的迁移流水账,如果您在寻求迁移教程,建议您查看这篇文章:点击前往文章

背景介绍

最近由于缓存的媒体太多,遂准备将Mastodon缓存的媒体迁移到亚马逊S3上,本来准备迁到wasabi s3上的,但是由于注册了一个体验账号发现有点没吃透它的配置,所以还是决定先迁移到aws s3上,毕竟个人感觉相比wasabi,aws s3要相对来说简单一些,所以先熟悉一下s3这个系统再说。

过程

  1. 首先先在服务端上安装awscli
  2. 配置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]: #这里点回车即可
    
  3. 增加一个媒体用的地址,如media.example.com到nginx的配置内,这样不会暴露后端存储桶的地址,防止恶意刷流量,造成损失,同时也可以对经常使用的媒体进行缓存等优势,配置模板:官方文档
  4. 将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的网址
    
  5. 这时候媒体就已经开始在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
    
暂无评论

发送评论 编辑评论


				
上一篇