前書き
DigitalOcean Spacesは、大量のデータを簡単かつ費用効果の高い方法で保存および提供できるように設計されたオブジェクトストレージサービスです。
このガイドでは、Rcloneを使用して2つのスペース間でデータを転送することにより、スペース領域間でデータを移行する方法について説明します。 Rcloneのインストール方法、複数のリージョンにアクセスするために必要な構成設定、およびリージョン間でファイルを同期し、整合性を検証するために使用できるコマンドを示します。
APIキーの作成とスペースエンドポイント情報の検索
スペース間でオブジェクトをコピーするためにRcloneのインストールと構成を開始する前に、DigitalOcean Spacesアカウントに関する情報が必要になります。 Spaces APIキーが必要になります。また、ソーススペースと宛先スペースのリージョンと名前を知る必要があります。
DigitalOcean Spaces APIキーの生成
DigitalOcean Spaces APIキーを作成するには、How To Create a DigitalOcean Space API Keyドキュメントの「アクセスキーの作成」セクションに従ってください。
アクセスキーIDとシークレットキーを保存します。 後でそれらを使用して、Rcloneがアカウントにアクセスするように設定します。
Spaces S3互換エンドポイントの検索
次に、各スペースのエンドポイントを見つける必要があります。 スペースを選択し、Settingsタブを表示すると、DigitalOceanコントロールパネル内でスペースのエンドポイントを表示できます。
エンドポイントは常に、スペースを作成した領域であり、その後に.digitaloceanspaces.com
が続きます。 両方のスペースのエンドポイントをメモします。 rclone
構成を作成するときに、この情報を使用しますか。
Rcloneのインストール
これで、Rcloneをインストールする準備ができました。 ローカルマシンでこれを行うことができます。または、帯域幅が制限されている場合は、ソースまたは宛先のスペースリージョンにあるドロップレットにRcloneをインストールすることもできます。
プロジェクトのWebサイトの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 ~/Downloads
次に、アーカイブを解凍し、新しく作成されたディレクトリに移動します。
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
これにより、新しい空のファイルでテキストエディターが開きます。 続行するには、Configuring Rcloneのセクションに進んでください。
マックOS
macOSを実行している場合は、ターミナルでrclone
zipファイルをダウンロードしたディレクトリに移動することから始めます。
cd ~/Downloads
次に、ファイルを解凍し、新しく作成したディレクトリに移動します。
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
これにより、新しい空のファイルでテキストエディターが開きます。 続行するには、Configuring Rcloneのセクションに進んでください。
Windows
Windowsを実行している場合は、Windowsファイルエクスプローラーのダウンロードディレクトリに移動することから始めます。 rclone
zipファイルを選択して右クリックします。 表示されるコンテキストメニューで、Extract All…をクリックします。
プロンプトに従って、zipアーカイブからファイルを抽出します。
rclone.exe
ユーティリティはコマンドラインから実行する必要があります。 左下隅にあるWindowsボタンをクリックし、cmdと入力して、Command Promptを選択することにより、新しいCommand Prompt(cmd.exe
プログラム)ウィンドウを開きます。
内部で、次のように入力して抽出したrclone
パスに移動します。
cd "%HOMEPATH%\Downloads\rclone*\rclone*"
ディレクトリの内容を一覧表示して、正しい場所にいることを確認します。
dir
Output10/23/2017 01:02 PM .
10/23/2017 01:02 PM ..
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
コマンドを使用する場合は、常にこのディレクトリにいる必要があります。
[.note]#Note: macOSおよびLinuxでは、rclone
と入力してツールを実行しますが、Windowsでは、コマンドはrclone.exe
と呼ばれます。 このガイドの残りの部分では、コマンドをrclone
として提供するため、Windowsで実行する場合は毎回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-sfo2]
type = s3
env_auth = false
access_key_id = your_spaces_access_key
secret_access_key = your_spaces_secret_key
endpoint = sfo2.digitaloceanspaces.com
acl = private
ここでは、spaces-sfo2
という名前の新しいrclone
「リモート」を定義します。 構成するSpacesリージョンに一致するようにリージョン名を変更します。
type
をs3
に設定して、rclone
がリモートストレージリソースと対話して管理する適切な方法を認識できるようにします。 この構成ファイルでスペースアクセス資格情報を定義するので、env_auth
をfalse
に設定できます。
次に、access_key_id
変数とsecret_access_key
変数をそれぞれSpacesアクセスキーと秘密キーに設定します。 アカウントに関連付けられている資格情報の値を必ず変更してください。
endpoint
を、前に検索したSpacesエンドポイントに設定しました。
最後に、acl
をprivate
に設定して、資産を共有するまで資産を保護します。
次に、作成した構成ブロックの複製を作成し、2番目のリージョンを反映するように名前とエンドポイントリージョンを更新します。
~/.config/rclone/rclone.conf
. . .
[spaces-nyc3]
type = s3
env_auth = false
access_key_id = your_spaces_access_key
secret_access_key = your_spaces_secret_key
endpoint = nyc3.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-sfo2:
Output -1 2019-09-23 13:07:54 -1 source-space
上記の出力は、source-space
と呼ばれる1つのスペースがsfo2
領域で見つかったことを示しています。
手順を繰り返して、他の地域を表示できます。
rclone lsd spaces-nyc3:
Output -1 2019-09-23 13:08:28 -1 destination-space
スペースの内容を表示するには、tree
コマンドを使用できます。 リモート名を渡し、その後にコロンとリストする「ディレクトリ」の名前(スペース名)を続けます。
rclone tree spaces-sfo2:source-space
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-sfo2:source-space spaces-nyc3:destination-space
すべてがうまくいったと仮定すると、rclone
は2つのスペース間でオブジェクトのコピーを開始します。
[.note]#Note:指定した領域に宛先スペースを以前に作成していない場合、rclone
は指定された名前で宛先スペースを作成しようとします。 指定された名前がすでに別のアカウントで使用されている場合、または名前がDigitalOcean Spacesの命名要件(小文字、数字、ダッシュのみ)を満たしていない場合、これは失敗します。
#
転送が完了したら、tree
サブコマンドでオブジェクトを表示して、オブジェクトが転送されたことを確認できます。
rclone tree spaces-nyc3:destination-space
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-sfo2:source-space spaces-nyc3:destination-space
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
ユーティリティをインストールして構成し、すべてのオブジェクトをソースSpaceから宛先Spaceにコピーしました。
rclone
クライアントは、ファイルのアップロードまたはダウンロード、ローカルファイルシステムへのスペースのマウント、追加のスペースの作成または削除など、他の多くのオブジェクトストレージ管理タスクに使用できます。 ツールが提供する機能の詳細については、man
ページを確認してください。