rclone で bucket 間のデータを同期する
rclone は、2 つの S3 bucket が異なるサイトや異なるプロバイダーにある場合でも、その間でデータをコピー・同期できます。他のプロバイダーから FPT Object Storage に移行する場合や、2 つの S3 環境を並行して運用する場合に使用してください。
ヒント
ツールをインストールせずに他のプロバイダーから FPT Object Storage にデータを移動するには、Portal の migrate job を使用します。詳しくは、bucket のデータを移行するを参照してください。s3sync については、S3 クライアントで接続するを参照してください。
次の例では、Linux 上で、サイト 1 の bucket-site01 のデータをサイト 2 の bucket-site02 にコピーします。
前提条件
- 各サイトの Access Key、Secret Key、endpoint。
- データの受け取り先となる、サイト 2 上の空の bucket。
rclone を設定する
-
rclone をインストールします。
sudo apt-get install rclone -
両方のサイトの情報を記述した
~/.config/rclone/rclone.confファイルを作成します。providerは各 S3 環境に合わせて設定します(例: Amazon S3 の場合はAWS)。[site01]
type = s3
provider = Other
env_auth = false
access_key_id = YOUR_SITE01_ACCESS_KEY
secret_access_key = YOUR_SITE01_SECRET_KEY
endpoint = https://s3-hcm04.fptcloud.com/
acl = private
[site02]
type = s3
provider = Other
env_auth = false
access_key_id = YOUR_SITE02_ACCESS_KEY
secret_access_key = YOUR_SITE02_SECRET_KEY
endpoint = https://s3-hfx03.fptcloud.com/
acl = private -
rclone から両方のサイトの bucket とデータが見えることを確認します。
rclone lsd site01:
rclone lsd site02:
rclone ls site01:bucket-site01
データをコピーする
-
ドライランを実行し、実際にはコピーせずにエラーがないかを確認します。
rclone sync -Pv site01:bucket-site01 site02:bucket-site02 --dry-run -
ドライランでエラーがなければ、コピーを実行します。
rclone sync -Pv site01:bucket-site01 site02:bucket-site02 -
rclone lsdとrclone lsで、両方のサイトの bucket とデータをもう一度確認します。
警告
rclone sync は転送先を転送元と同一の状態にするため、サイト 1 に存在しないファイルはサイト 2 から削除されます。削除せずにコピーするには、代わりに rclone copy を使用してください。