Cloud Storage の階層型名前空間は、フォルダを使用してオブジェクトを整理し、データを論理ファイル システム構造に保存します。詳細については、階層型名前空間をご覧ください。
Storage Transfer Service は、階層型名前空間を使用する Cloud Storage バケットとの間で転送できます。フォルダとフォルダのメタデータを正常に転送するには、Storage Transfer Service サービス エージェントに追加の権限を付与する必要があります。
必要な権限
転送に必要な標準権限に加えて、Storage Transfer Service サービス エージェントに次の IAM 権限を付与する必要があります。
ソースが階層型名前空間バケットの場合:
- ソースバケットに対する
storage.folders.list
。この権限は、すべての転送に必要なストレージ オブジェクト閲覧者(roles/storage.objectViewer
)ロールに含まれています。追加のロールは必要ありません。
宛先が階層型名前空間バケットの場合:
- 宛先バケットに対する
storage.folders.create
。この権限は、ストレージ オブジェクト ユーザー(roles/storage.objectUser
)ロールに含まれています。エージェントレス転送の権限に記載されているロールに加えて、このロールを付与します。
サービス エージェントにロールを追加する手順については、以下をご覧ください。
転送の動作
2 つの階層型名前空間バケット間で転送する場合:
- オブジェクトとオブジェクトのメタデータが転送されます。
- フォルダとフォルダのメタデータが移行されます。
- ソースまたはシンクでのフォルダの削除はサポートされていません。
階層型名前空間バケットからフラットな名前空間バケットに転送する場合:
- オブジェクトとオブジェクトのメタデータが転送されます。
- フォルダはオブジェクトの接頭辞として転送されます。たとえば、
folderA
のobject1
はfolderA/object1
として宛先に転送されます。 - フォルダのメタデータは転送されません。
- ソースでのフォルダの削除はサポートされていません。
フラットな名前空間バケットから階層型名前空間バケットに転送する場合:
- オブジェクトとオブジェクトのメタデータが転送されます。
- オブジェクトの接頭辞は、不足しているフォルダを作成するために使用されます。たとえば、
folderA/object1
を転送する場合、Storage Transfer Service はfolderA
という新しいフォルダを作成し、object1
をそのフォルダに転送します。 - シンクでのフォルダの削除はサポートされていません。