MastodonでBackblaze B2を使う
設定方法
Backblazeをそのまま使う場合
下り転送料がかかる
bz002.heguro.comに CNAME f002.backblazeb2.com を設定
code:.env.production.cf.ini
# File storage (optional)
# -----------------------
S3_ENABLED=true
S3_BUCKET=media-nofed01hegurocom
S3_REGION=us-west-002
S3_ALIAS_HOST=bz002.heguro.com/file/media-nofed01hegurocom
S3_HOSTNAMEは、S3_ENDPOINTとS3_ALIAS_HOSTを指定してればどこにも適用されず不要っぽい
下り転送量無料らしい
Cloudflareを挟んでもっといい感じにする
まだ未完成
code:.env.production.cf2.ini
# File storage (optional)
# -----------------------
S3_ENABLED=true
S3_BUCKET=hegurocom
S3_REGION=us-west-002
S3_ALIAS_HOST=media-nofed01.heguro.com
S3_PREFIX=media-nofed01.heguro.com/
S3_ALIAS_REMOVE_PREFIX=1
事例
ない
検索しても S3 互換 API 実装後の事例がほぼ無い
S3 互換になる前に、プロキシで B2 API に変換して何とかしている人が居た (今も Google 検索上位に居る)
古い情報なので参考にしないほうがよいと思う
唯一出てきたのが mstdn.love 鯖缶さんがテストインスタンスで使った例
以下雑メモ
Cloudflareを挟んだうえでもっといい感じにしたい
いい感じとは
bucket名を隠して、Cloudflareを迂回されて転送料が上がるリスクを減らす
URLから /file/<bucket-name> を無くす
deprecatedらしい
bucket内の指定したdirに入れたうえで、URLからは指定したdirを外したい (逆ALIAS_HOST)
S3_BUCKETを bucket-name/dirname 指定はできない
code:結果.log
method=POST path=/api/v2/media format=html controller=Api::V2::MediaController action=create status=500 error='ArgumentError: bucket name must not contain a forward-slash (/)'
それはそう
Paperclipオプションの s3_prefixes_in_alias がめっちゃそれっぽい気がする
S3におけるprefixはディレクトリっぽい文字列のことを指すらしい
これだった
できた
Mastodonの改造は必要だけど
優先度低: Misskey,Groundpolisはどうなってる?
Misskeyは最初からprefix設定があるっぽい
そもそもNode.jsだからPaperclip使ってないし全然違いそう