メインコンテンツまでスキップ

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 を設定する​

  1. rclone をインストールします。

    sudo apt-get install rclone
  2. 両方のサイトの情報を記述した ~/.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
  3. rclone から両方のサイトの bucket とデータが見えることを確認します。

    rclone lsd site01:
    rclone lsd site02:
    rclone ls site01:bucket-site01

データをコピーする​

  1. ドライランを実行し、実際にはコピーせずにエラーがないかを確認します。

    rclone sync -Pv site01:bucket-site01 site02:bucket-site02 --dry-run
  2. ドライランでエラーがなければ、コピーを実行します。

    rclone sync -Pv site01:bucket-site01 site02:bucket-site02
  3. rclone lsd と rclone ls で、両方のサイトの bucket とデータをもう一度確認します。

警告

rclone sync は転送先を転送元と同一の状態にするため、サイト 1 に存在しないファイルはサイト 2 から削除されます。削除せずにコピーするには、代わりに rclone copy を使用してください。