Storage Transfer Serviceで特定のファイルだけを転送する方法

Google Cloud
この記事は約6分で読めます。

こんにちは!石黒です。

皆さんはStorage Transfer Serviceでファイルを転送する際に、対象のバケットに転送したくないファイルも含まれていて困ったことはないでしょうか。
本記事では、そのようなケースを解決するための方法を紹介したいと思います。

本記事でわかること

  • Storage Transfer Serviceとは
  • マニフェストファイルの作成方法と利用方法
  • Storage Transfer Serviceで特定のファイルだけ転送する方法

Storage Transfer Serviceとは

Storage Transfer Serviceとは、Google Cloudで提供される、異なるストレージ間でのデータの移行や同期を簡単かつ効率的に行うためのサービスです。

Google Cloud内の異なるストレージやプロジェクト間だけではなく、オンプレミス環境や他のクラウドプロバイダからもデータを移行することができるため、様々なシチュエーションで利用することができます。

その他の特徴としては以下が挙げられます。

  • 高速で効率的なデータ移行:最適化されたアルゴリズムにより、大容量のデータでも高速かつ効率的に転送可能
  • 安全性:暗号化によるデータ保護でセキュリティが保たれているだけではなく、
    データの整合性が検証されていることにより破損の心配もない
  • スケジュール設定:1回限りだけではなく、スケジュール設定による定期実行も可能
  • フルマネージド:インフラを管理する必要がなく、コードの記述も不要

そんなStorage Transfer Serviceですが、「マニフェストフファイル」を利用することで、転送するファイルを指定することが可能です。

マニュフェストファイルの使い方

マニフェストファイルとは

Storage Transfer Service では特定のファイルまたはオブジェクトの転送がサポートされており、そこでマニフェストファイルが使用されます。

マニフェストファイルはCSVファイルで作成することができます。
ファイルの中では、カンマ等は使用せずに目的のファイル名を1行目から1列で列挙します。

また、ファイル名をパスと共にを記述する際は、ジョブ作成時に指定するルートディレクトリからの相対パスで記述します。しかし、ワイルドカードがサポートされていない点には注意が必要です。サイズの上限は1GBで、行数としては約100万行です。

例えばファイル構成が以下のような場合には、マニフェストファイルを次のように作ります。

root/
  ├ file1.txt
  ├ dir1/
  │   └ file2.txt
  ├ dir2/
  │   └ subdir/  
  │          └ file3.txt
file1.txt
dir1/file2.txt
dir2/subdir/file3.txt


実際に試してみた

それでは、実際にマニフェストファイルを作成して、バケットの中から特定のファイルだけを転送してみましょう。

まずはCloud Storageに転送元のバケットと転送先のバケットを準備します。
転送元バケットにサンプルのファイルを配置していきます。
サンプルとしてルートディレクトリにファイル1~9、dirディレクトリにファイル10,11を配置しました。

用意したファイルの中から、今回は以下のファイルだけ転送したいと思います。
・sample2
・sample4
・sample6
・sample10

次にマニフェストファイルを作成し、任意のバケットに配置します。

次にStorage Transfer Serviceで転送ジョブを作成します。
コンソール画面上部にある検索バーから「data transfer」と検索し、候補の「転送ジョブ」を選択します。

すると、転送ジョブ一覧画面が表示されるので、画面上部か中央にある「転送ジョブを作成」ボタンをクリックします。

ここから転送ジョブの作成に必要な設定を入力していきます。
まずはじめの「開始」では、転送元のサービスを指定します。「参照先の種類」ドロップダウンリストを展開すると、Cloud Storage以外のサービスを選ぶことが出できます。

今回はCloud Storageから転送するのでデフォルトのままにします。
また、スケーリングモードは「バッチ」を選択します。設定した後は「次のステップ」をクリックします。

次に「ソースの選択」では、転送元バケットを選択します。
バケットまたはフォルダの「参照」から、今回の転送したいファイルが置いてあるバケットを指定してください。
また、この画面からも転送するファイルをフィルタリングすることができます。条件は接頭辞や最終更新日で対象が絞れる場合に限られますが、ここから指定する選択肢もあります。

次の「転送先を選択してください」では、転送先のバケットを先ほど同様に参照から選択してください。選択した後、次のステップをクリックします。

次の「ジョブを実行するタイミングの選択」では、ジョブの実行と開始のタイミングを指定することができます。今回は1回きりで良いので、「1回だけ実行」と「今すぐ開始」を選択します。

最後の「設定の選択」では、ジョブ名の指定やジョブの説明を記述することができます。
そして今回の目的でもあるマニフェストファイルはこの画面で指定します。マニフェストファイルのチェックボックスにチェックを入れると参照ボタンが表示されるので、ここからマニフェストファイルが配置されているバケットを選択します。

その他、転送先にファイルが既に存在する場合に上書きするかどうか、転送後に転送元バケットからファイルを削除するかどうかなども設定できます。
今回は他の設定はデフォルトのまま「作成」をクリックします。

作成ボタンをクリックすると、先ほどのジョブ一覧画面に戻ります。
しばらく待機すると、ステータスが成功になりました。ジョブIDをクリックすることで詳細を確認することもできます。

最後に、転送先バケットにファイルがしっかり転送されているかどうか確認します。
目的のバケットにマニフェストファイルで指定したファイルだけ転送されていることが確認できました。

まとめ

いかがでしたでしょうか。
今回ご紹介したマニフェストファイルを使用することで転送するファイルを柔軟に絞ることができるため、バケットに対象外のファイルがある場合でも安心です。皆さんも是非活用してみてください!

Google および Google Cloud Platform™ service は Google LLC の商標であり、この記事は Google によって承認されたり、Google と提携したりするものではありません。

コメント

タイトルとURLをコピーしました