プログラミングなんてわからないんですけど〜

元プログラマによるプライベートでのプログラミング日記。1/3のつもりだけどソフト関連はここがメイン

wasabi(minio)のフォルダ間コピーをaws cliで行う

mastodon 3.1.4からオブジェクトストレージ使っている場合なのかよくわからんが、リモートから取得したファイルの格納先が変更になりました。
そこで、以下のコマンドを実行してスキーマを変更してねと言われているようです(と思った)。

RAILS_ENV=production bundle exec bin/tootctl upgrade storage-schema

で、これを実行するとファイルパスが/cacheの下に変わるのですが、実行結果を見ると「ファイルは自分でコピーしてね」みたいな感じに読める。
確かに、上記コマンドではコピーされないので自分でコピーしてやらないと、アイコンとか表示されなくなる。コマンド実行後に取得したアイコンとかは新しいところに保存されるので問題ないが。

AWS S3はWeb UIでフォルダをコピーできるのでそれでやってしまったが、wasabiはそんな機能は提供していないみたいだ(探せなかった)。
なので、aws cliコマンドを使ってs3互換フォルダ間のコピーをする。
aws cliwasabiで使う前提知識はここでは省略する。インストール方法も省略。
wasabi-support.zendesk.com


で、どうやるかだが、以下のように実行すればよいらしい。

aws --endpoint-url=https://s3.wasabisys.com s3 cp s3://test/accounts s3://test/cache/accounts --recursive

フォルダを指定する場合は「--recursive」オプションが必要らしい。
dev.classmethod.jp

ひとまず、accountsフォルダとcustom_emojisフォルダをコピーすることで一応は回避したつもり。preview_cardsかな?それはあとで考える。

なお、この方法はminioにも使えるので別のサーバで現在実行中である。