なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

Wasabi から Cloudflare R2 へ移行する

このたびアップロードよりダウンロードのほうが多いであろうファイルについて、 Cloudflare R2 へ移行したので、その方法のメモ。
ただし、 S3 を使っているなら公式のマイグレーションツールを使った方がおそらく良いので、そちらを使うべし。

まずは、 Wasabi のダッシュボードから、 AWS CLI を使うためのアクセスキーを発行する。
同様にして Cloudflare R2 もアクセスキーを発行する。
発行したら、 AWS CLI をインストールし、一括でファイルのダウンロードを行う。 AWS CLI が入っていなかったら、以下のようにして入れる。

$ scoop install aws

導入後、プロファイルを設定する。
プロファイルは ~/.aws/credentials にあるので、以下のように保存する。

[wasabi]
aws_access_key_id=xxx
aws_secret_access_key=xxx
region=ap-northeast-1
endpoint_url=https://s3.ap-northeast-1.wasabisys.com

[cloudflare]
aws_access_key_id=xxx
aws_secret_access_key=xxx
endpoint_url=https://xxx.r2.cloudflarestorage.com

endpoint_url は AWS CLI は見てくれないので意味は無いが、メモ程度に追記しておくと便利。
次に、以下のコマンドでソース、つまりは Wasabi からバケット内のファイルをすべてダウンロードする。

$ aws s3 cp s3://assets.natsuneko.blog/ ./assets.natsuneko.blog/ --recursive --profile=wasabi --endpoint-url=https://s3.ap-northeast-1.wasabisys.com

これで、この場合は第 2 引数である ./assets.natsuneko.blog 以下にファイルが保存される。
次は同様にして、 R2 へアップロードする。

$ aws s3 cp ./assets.natsuneko.blog/ s3://natsuneko-blog/ --recursive --profile=cloudflare --endpoint-url=https://xxx.r2.cloudflarestorage.com

これで一括移行が出来る。
あまりにもファイルが多い場合は分割してやると良いと思う (わたしはせいぜい数十 GB なので、これで問題ないが)

ということで、メモでした。