技术小白建站日志(二)——将Mastodon媒体文件上传到Scaleway

在一切开始前对大家说,Digital Ocean自带的Console能不用的就别用了,那玩意儿太特么难用了!

我使用了PuTTy,按照教程 https://www.digitalocean.com/docs/droplets/how-to/connect-with-ssh/putty/ 设置。目前用PuTTy除了长时间不使用会冻结窗口,再次点开要重新登陆比较麻烦之外,其他体验都远超Digital Console,软件本身还特别小。左键选中自动复制,右键单击粘贴这点太实用了,终于不用在nano命令里一个个字母敲。此外奈奈推荐了termius,也可以尝试,也许会更好用。

另外前段时间折腾git命令研究半天搞了自己的repo,但是考虑到目前还没研究透,搞不好下次升级就要悲剧了,所以暂且搁置,等升级成功了再分享踩坑日志。

言归正传。上云,亦即将实例媒体文件上传至储存服务。作为小型实例在申请时仅申请了50G的SSD,虽然可以通过定期清理媒体文件瘦身,多少还是有些担心会超过用量。所以研究了几天,还是决定上云。

考虑到个人实例用不了多少(目前在未清理媒体文件的情况下,用量是6天2G左右),在 @bgme 站长建议下使用了Scaleway,决定先白嫖一段时间的75G免费空间再说,毕竟Wasabi虽然便宜但是最低月费也要6刀,按$0.01/G的价格,Scaleway到wasabi最低月费之前大概可以撑好几年。

参考文献是我们大家都知道的:https://stanislas.blog/2018/05/moving-mastodon-media-files-to-wasabi-object-storage/
(Scaleway官方文档,随便看看就好:
https://www.scaleway.com/en/docs/object-storage-with-aws-cli/

OK,按照参考文献开始。

1. 注册Scaleway,点击左侧的Object Storage,新建public bucket(这里有个坑稍后再说)。

2. 然后我废了老大劲儿才找到哪里去生成API Key:右上角头像-Credentials-API Tokens,然后会生成Access Key和Secret Key。注意一定要复制到本地,Secret Key只出现一次。

Scaleway不让你自己填写Policy,所以Policy两步都跳过。

3. 按照文中在root中安装aws-cli(pip install awscli),然后在mastodon用户中configure(aws configure)。这里参考文献给我的一个坑是,作者是在root用户底下configure的,而实际上应该转到mastodon用户后再进行configure,根据 @AstroProfundis 的说法,这个信息是存在每个用户自己的目录下的(感谢!)。如果在root里设置,就会和我一样在下一步出现Unable to locate credentials。

在configure的时候我同时也设置了Region为fr-par。如果选择荷兰应该是nl-ams,下面所有步骤同。

4. 下一步就是魔法步骤:同步已有媒体!

转到live文件夹,执行命令:

aws s3 sync public/system s3://【你的bucket名】/ --endpoint-url=https://s3.fr-par.scw.cloud --acl public-read

同样fr-par和nl-ams自行替换。

请注意这个教程里没有的–acl public-read,这个一定要有,否则Scaleway默认每个上传文件可见性都是Private,并且没有一键改动的方式……当我第一遍吭哧吭哧传了一千多个文件之后发现所有文件都是Private站外看不见之后内心真的,挺崩溃的【】而且修改bucket可见性并不会对每个具体文件造成影响——这也太坑了!而原参考文献里之所以没有这个,是因为他在我们跳过的Policy两步就已经设置了这点。所以如果参照原参考文献将媒体放在Wasabi上,就可以不用特地点明public-read。

@bgme 站长提供了一键修改可见权限的方式: https://stackoverflow.com/questions/53726701/how-to-update-acl-for-all-s3-objects-in-a-folder-with-aws-cli ,需要一个个文件夹去改,没有去试不知道管不管用。我后来是重新建了一个bucket重传了一遍解决的。

5. 设置Nginx。这个步骤可以降低S3储存的流量费用,并且让Scaleway读取图片的速度和你服务器速度一样。

*补充:我当时因为实在看不懂这步所以放弃了。后来我成功设置了Nginx,具体参见日志(三)第三部分。大家现在上云可以考虑一次性设置完毕。

Scaleway提供了每月75G免费流量,对我来说够用,而且它的速度比本站所在的digital ocean要更快一些。以下是 @AstroProfundis 关于nginx设置的建议,也可以参考上面的文章:

nginx 配置在 /etc/nginx。这是一般的默认位置,用 root 修改之后 systemctl reload nginx 来重新加载配置;实际上要做的事情是给你用的存储做一个反向代理,和一开始建站的时候干的事情差不多,但要更简单一些。比如我站的栗子 https://pastebin.com/c8w8ZZwn (里面域名和 bucket 名之类的抹掉了,需要自己修改)

6. 修改.env.production。添加如下内容:

S3_ENABLED=true
S3_BUCKET=【你的bucket名】
AWS_ACCESS_KEY_ID=【你的Access key】
AWS_SECRET_ACCESS_KEY=【你的Secret key】
S3_PROTOCOL=https
S3_HOSTNAME=s3.fr-par.scw.cloud
S3_ENDPOINT=https://s3.fr-par.scw.cloud/
S3_REGION=fr-par

同样如果是荷兰机房就把fr-par改成nl-ams。(如果设置了nginx,那S3_HOSTNAME那一行改成你自己设定的媒体域名,比如我的是media.pullopen.xyz。)

7. 不放心可以再魔法步骤一下,把你这段时间出来的图片也弄进去。
重启mastodon

systemctl restart mastodon-sidekiq
systemctl reload mastodon-web

然后应该就可以成功了。

8. 如果成功,你就可以放心大胆地删掉public/system里所有文件啦!

rm -rf public/system

总之又是一个小白踩坑日志,供新手站长们参考,大神就不要看了 。

再次鞠躬感谢各位站长的帮助!!!

发布者:Pullopen

当我伸出手来,总希望能抓住些什么,不至于落入对空虚无尽的恐慌之中。

One thought on “技术小白建站日志(二)——将Mastodon媒体文件上传到Scaleway

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 登出 /  更改 )

Google photo

您正在使用您的 Google 账号评论。 登出 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 登出 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 登出 /  更改 )

Connecting to %s

在 WordPress.com 上创建您自己的网站
立即开始
%d 博主赞过: