前書き

DigitalOcean Spacesは、大量のデータの保存と提供を簡単かつ費用対効果の高いものにするために設計されたオブジェクトストレージサービスです。

このガイドでは、https://rclone.org/ [Rclone]を使用して2つのスペース間でデータを転送することにより、Spacesリージョン間でデータを移行する方法について説明します。 Rcloneのインストール方法、複数のリージョンにアクセスするために必要な構成設定、およびリージョン間でファイルを同期し、整合性を検証するために使用できるコマンドを示します。

APIキーの作成とスペースエンドポイント情報の検索

スペース間でオブジェクトをコピーするためにRcloneのインストールと構成を開始する前に、DigitalOcean Spacesアカウントに関する情報が必要になります。 Spaces APIキーが必要になります。また、ソーススペースと宛先スペースのリージョンと名前を知る必要があります。

DigitalOcean Spaces APIキーの生成

DigitalOcean Spaces APIキーを作成するには、https://www.digitalocean.com/docs/spaces/how-to/administrative-access/#access-keys [作成方法]の「アクセスキーの作成」セクションに従ってください。 DigitalOcean Space API Key]ドキュメント。

アクセスキーIDとシークレットキーを保存します。 後でそれらを使用して、Rcloneがアカウントにアクセスするように設定します。

Spaces S3互換エンドポイントの検索

次に、各スペースのエンドポイントを見つける必要があります。 スペースを選択し、*設定*タブを表示することにより、DigitalOceanコントロールパネル内でスペースのエンドポイントを表示できます。

image:https://assets.digitalocean.com/articles/spaces-sync/endpoint.png [DigitalOcean Spacesエンドポイント]

エンドポイントは常に、スペースを作成したリージョンになり、その後に「+ .digitaloceanspaces.com 」が続きます。 両方のスペースのエンドポイントをメモします。 ` rclone +`設定を作成するときにこの情報を使用しますか。

Rcloneのインストール

これでhttps://rclone.org/[Rclone]をインストールする準備ができました。 ローカルマシンでこれを行うことができます。または、帯域幅が制限されている場合は、ソースまたは宛先のスペースリージョンにあるドロップレットにRcloneをインストールすることもできます。

プロジェクトのウェブサイトのhttps://rclone.org/downloads/ [ダウンロード]セクションにアクセスして、さまざまなプラットフォーム用にコンパイルされたユーティリティのバイナリを見つけます。 お使いのコンピューターのオペレーティングシステムに一致する圧縮されたバイナリをダウンロードして開始します。

Rclone zipファイルをコンピューターにダウンロードしたら、プラットフォームに合った以下のセクションに従ってください。

Linux

アーカイブを抽出する前に、 `+ unzip +`ユーティリティが利用可能であることを確認する必要があります。

  • Ubuntu または Debian *を実行している場合は、次のように入力してローカルパッケージインデックスを更新し、 `+ unzip +`をインストールできます。

sudo apt update
sudo apt install unzip
  • CentOS または Fedora *を実行している場合、次のように入力して `+ unzip +`をインストールできます。

sudo yum install unzip

+ unzip +`をインストールした状態で、 `+ rclone + zipファイルをダウンロードしたディレクトリに移動します。

cd

次に、アーカイブを解凍し、新しく作成されたディレクトリに移動します。

unzip rclone*
cd rclone-v*

ここから、バイナリを `+ / usr / local / bin`ディレクトリにコピーして、システム全体で使用できるようにします。

sudo cp rclone /usr/local/bin

次に、システムにマニュアルページを追加して、コマンド構文と使用可能なオプションに関するヘルプを簡単に取得できるようにします。 ローカルの手動ディレクトリが利用可能であることを確認してから、 `+ rclone.1 +`ファイルをコピーします:

sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1

次に、 `+ man +`データベースを更新して、新しいマニュアルページをシステムに追加します。

sudo mandb

最後に、Rclone構成ディレクトリを作成し、構成ファイルを開くことができます。

mkdir -p ~/.config/rclone
nano ~/.config/rclone/rclone.conf

これにより、新しい空のファイルでテキストエディターが開きます。 link:#configuring-rclone [Configuring Rclone]のセクションに進んで続行してください。

マックOS

macOSを実行している場合、ターミナルで + rclone + zipファイルをダウンロードしたディレクトリに移動することから始めます。

cd

次に、ファイルを解凍し、新しく作成したディレクトリに移動します。

unzip -a rclone*
cd rclone-v*

次に、 `+ / usr / local / bin `ディレクトリが使用可能であることを確認してから、そこに ` rclone +`バイナリをコピーします。

sudo mkdir -p /usr/local/bin
sudo cp rclone /usr/local/bin

最後に、構成ディレクトリを作成し、構成ファイルを開くことができます。

mkdir -p ~/.config/rclone
nano ~/.config/rclone/rclone.conf

これにより、新しい空のファイルでテキストエディターが開きます。 link:#configuring-rclone [Configuring Rclone]のセクションに進んで続行してください。

Windows

Windowsを実行している場合は、Windowsファイルエクスプローラーのダウンロードディレクトリに移動することから始めます。 + rclone + zipファイルを選択して右クリックします。 表示されるコンテキストメニューで、[*すべて抽出…​ *]をクリックします。

image:https://assets.digitalocean.com/articles/s3_migration/extract_archive.png [Windows抽出rclone zipファイル]

プロンプトに従って、zipアーカイブからファイルを抽出します。

`+ rclone.exe `ユーティリティはコマンドラインから実行する必要があります。 左下隅のWindowsボタンをクリックし、* cmd *と入力して、* Command Prompt *を選択して、新しい* Command Prompt *( ` cmd.exe +`プログラム)ウィンドウを開きます。

内部で、次のように入力して抽出した `+ rclone +`パスに移動します。

cd "%HOMEPATH%\Downloads\rclone*\rclone*"

ディレクトリの内容を一覧表示して、正しい場所にいることを確認します。

dir
Output10/23/2017  01:02 PM    <DIR>          .
10/23/2017  01:02 PM    <DIR>          ..
10/23/2017  01:02 PM                17 git-log.txt
10/23/2017  01:02 PM           296,086 rclone.1
10/23/2017  01:02 PM        16,840,192 rclone.exe
10/23/2017  01:02 PM           315,539 README.html
10/23/2017  01:02 PM           261,497 README.txt
              5 File(s)     17,713,331 bytes
              2 Dir(s)  183,296,266,240 bytes free

`+ rclone.exe +`コマンドを使用したいときはいつでもこのディレクトリにいる必要があります。

次に、構成ディレクトリを作成し、構成ファイルを開いてS3およびSpacesの資格情報を定義できます。

mkdir "%HOMEPATH%\.config\rclone"
notepad "%HOMEPATH%\.config\rclone\rclone.conf"

これにより、新しい空のファイルでテキストエディターが開きます。 構成ファイルでSpacesリージョンを定義する方法については、先に進んでください。

Rcloneの構成

Rclone構成ファイルで、2つのDigitalOcean SpacesリージョンをRcloneの「リモート」として構成します。 構成ファイルに次のセクションを貼り付けて、最初の領域を定義します。

〜/ .config / rclone / rclone.conf

[spaces-]
type = s3
env_auth = false
access_key_id =
secret_access_key =
endpoint = .digitaloceanspaces.com
acl = private

ここでは、「+ spaces-sfo2 」という名前の新しい「 rclone +」「リモート」を定義します。 構成するSpacesリージョンに一致するようにリージョン名を変更します。

`+ rclone `がリモートストレージリソースと対話して管理する適切な方法を知るように、 ` type `を ` s3 `に設定します。 この設定ファイルでSpacesアクセス認証情報を定義するので、 ` env_auth `を ` false +`に設定できます。

次に、 `+ access_key_id `変数と ` secret_access_key +`変数をそれぞれSpacesアクセスキーとシークレットキーに設定します。 アカウントに関連付けられている資格情報の値を必ず変更してください。

先に検索したSpacesエンドポイントに「+ endpoint +」を設定します。

最後に、 `+ acl `を ` private +`に設定して、共有するまで資産を保護します。

次に、作成した構成ブロックの複製を作成し、2番目のリージョンを反映するように名前とエンドポイントリージョンを更新します。

〜/ .config / rclone / rclone.conf

. . .

[spaces-]
type = s3
env_auth = false
access_key_id =
secret_access_key =
endpoint = .digitaloceanspaces.com
acl = private

構成の残りの部分は、最初の領域と同じままにする必要があります。 完了したら、ファイルを保存して閉じます。

macOSおよびLinuxでは、資格情報が内部にあるため、構成ファイルのアクセス許可を必ずロックダウンしてください。

chmod 600 ~/.config/rclone/rclone.conf

Windowsでは、明示的に許可されない限り、管理者以外のユーザーに対するアクセス許可は拒否されるため、アクセスを手動で調整する必要はありません。

次に、 `+ rclone +`を使用してスペースを探索し、スペース間でデータを同期します。

S3からスペースへのオブジェクトのコピー

設定が完了したので、ファイルを転送する準備ができました。

`+ rclone +`が設定されたリモートをチェックすることから始めます:

rclone listremotes
Outputspaces-nyc3:
spaces-sfo2:

定義した両方の領域が表示されます。

`+ rclone +`にリモートに関連付けられた「ディレクトリ」を一覧表示することで利用可能なスペースを表示できます(リモート名の最後にコロンを追加してください)。

rclone lsd spaces-:
Output          -1 2019-09-23 13:07:54        -1 source-space

上記の出力は、「+ source-space 」と呼ばれる1つのスペースが「 sfo2 +」領域で見つかったことを示しています。

手順を繰り返して、他の地域を表示できます。

rclone lsd spaces-:
Output          -1 2019-09-23 13:08:28        -1 destination-space

スペースの内容を表示するには、 `+ tree +`コマンドを使用できます。 リモート名を渡し、その後にコロンとリストする「ディレクトリ」の名前(スペース名)を続けます。

rclone tree spaces-:
Output/
├── Photos
│   ├── 2019.01.24-23.10.27.png
│   ├── 2019.01.24-23.11.39.png
│   ├── 2019.01.24-23.18.00.png
│   ├── 2019.01.24-23.18.18.png
│   ├── 2019.01.24-23.18.30.png
│   ├── 2019.01.24-23.19.32.png
│   ├── 2019.01.24-23.23.06.png
│   ├── 2019.01.24-23.23.53.png
│   ├── 2019.01.24-23.25.14.png
│   ├── 2019.01.24-23.26.22.png
│   ├── 2019.01.25-12.43.35.png
│   ├── 2019.03.13-14.35.34.png
│   └── 2019.03.13-14.40.52.png
└── Photos.zip

1 directories, 14 files

準備ができたら、次のように入力してスペース間でファイルをコピーできます。

rclone sync spaces-: spaces-:

すべてがうまくいったと仮定すると、 `+ rclone +`は2つのスペース間でオブジェクトのコピーを開始します。

転送が完了したら、 `+ tree +`サブコマンドでオブジェクトを表示して、オブジェクトが転送されたことを確認できます。

rclone tree spaces-:
Output/
├── Photos
│   ├── 2019.01.24-23.10.27.png
│   ├── 2019.01.24-23.11.39.png
│   ├── 2019.01.24-23.18.00.png
│   ├── 2019.01.24-23.18.18.png
│   ├── 2019.01.24-23.18.30.png
│   ├── 2019.01.24-23.19.32.png
│   ├── 2019.01.24-23.23.06.png
│   ├── 2019.01.24-23.23.53.png
│   ├── 2019.01.24-23.25.14.png
│   ├── 2019.01.24-23.26.22.png
│   ├── 2019.01.25-12.43.35.png
│   ├── 2019.03.13-14.35.34.png
│   └── 2019.03.13-14.40.52.png
└── Photos.zip

1 directories, 14 files

より堅牢な検証を行うには、 `+ check +`サブコマンドを使用して、両方の領域のオブジェクトを比較します。

rclone check spaces-: spaces-:
Output2019/09/23 14:29:11 NOTICE: S3 bucket destination-space: 0 differences found
2019/09/23 14:29:11 NOTICE: S3 bucket destination-space: 14 matching files

これにより、両方のリモートの各オブジェクトのハッシュ値が比較されます。 一部のハッシュを比較できなかったことを示すメッセージが表示される場合があります。 その場合、 `-size-only +`フラグ(ファイルサイズに基づいて比較するだけ)または `-download +`フラグ(両方のリモートから各オブジェクトをダウンロードしてローカルに比較する)を使用してコマンドを再実行できます。転送の整合性を検証します。

結論

このガイドでは、2つのDigitalOcean Spacesリージョン間でオブジェクトを転送する方法について説明しました。 SpacesサービスからAPIクレデンシャルとエンドポイント情報を収集し、ローカルコンピューターに「+ rclone +」ユーティリティをインストールして設定し、ソーススペースから宛先スペースにすべてのオブジェクトをコピーしました。

`+ rclone `クライアントは、ファイルのアップロードまたはダウンロード、ローカルファイルシステムへのスペースのマウント、追加のスペースの作成または削除など、他の多くのオブジェクトストレージ管理タスクに使用できます。 ツールが提供する機能の詳細については、「 man +」ページをご覧ください。