🧙
🧙 Cloudflare R2 別アカウント間のデータ移行手順(rclone利用)
🎯 概要
- 別アカウントにバケットを移行したいユースケースの際に使用できるtipsです。
- rclone を利用することで、S3互換APIを通じて高速・安全にオブジェクトをコピーできます。
🧰 前提条件
- Cloudflare アカウントが2つ(移行元・移行先)
- 各環境で R2 バケット作成済み
- ターミナル環境で rclone が使用可能
// rclone入っていない方は
brew install rclone
🔑 APIトークンの準備
- 移行で使用する設定ファイル用のtoken情報をダッシュボードから取得します。
- Cloudflare Dashboard → R2 > Manage API Tokens
- Create API Tokenから新規作成
- 権限を以下のように設定
- Object Read & Write を付与
- 生成後、以下を控える:
access_key_id
secret_access_key
endpoint(例:https://<ACCOUNT_ID>.r2.cloudflarestorage.com)
⚙️ rclone の設定
設定ファイル作成
vim ~/.config/rclone/rclone.conf
以下を追記:
[old]
type = s3
provider = Cloudflare
access_key_id = <移行元のアクセスキーID>
secret_access_key = <移行元のシークレットアクセスキー>
endpoint = https://<移行元のendpoint url>
[new]
type = s3
provider = Cloudflare
access_key_id = <移行先のアクセスキーID>
secret_access_key = <移行先のシークレットアクセスキー>
endpoint = https://<移行先のendpoint url>
🚀 データ移行実行
不要ファイルがある場合は除外して進捗を表示しながらコピーします。
rclone copy old:<source-bucket> new:<dest-bucket> \
--exclude "hogehoge/**" \ // hogehoge配下全てを除外してcopyします。
--progress \ // 進捗情報表示
--transfers 16 // 同時に処理する数デフォルトは4
🔁 中断・再開について
rclone はファイル単位で整合性チェックを行うため、
途中で止まっても再実行すれば自動的に再開されます。
Discussion