TransferSpec

転送実行のための設定。

JSON 表現
{
  "objectConditions": {
    object (ObjectConditions)
  },
  "transferOptions": {
    object (TransferOptions)
  },
  "transferManifest": {
    object (TransferManifest)
  },
  "sourceAgentPoolName": string,
  "sinkAgentPoolName": string,

  // Union field data_sink can be only one of the following:
  "gcsDataSink": {
    object (GcsData)
  },
  "posixDataSink": {
    object (PosixFilesystem)
  }
  // End of list of possible types for union field data_sink.

  // Union field data_source can be only one of the following:
  "gcsDataSource": {
    object (GcsData)
  },
  "awsS3DataSource": {
    object (AwsS3Data)
  },
  "httpDataSource": {
    object (HttpData)
  },
  "posixDataSource": {
    object (PosixFilesystem)
  },
  "azureBlobStorageDataSource": {
    object (AzureBlobStorageData)
  },
  "awsS3CompatibleDataSource": {
    object (AwsS3CompatibleData)
  },
  "hdfsDataSource": {
    object (HdfsData)
  }
  // End of list of possible types for union field data_source.

  // Union field intermediate_data_location can be only one of the following:
  "gcsIntermediateDataLocation": {
    object (GcsData)
  }
  // End of list of possible types for union field intermediate_data_location.
}
フィールド
objectConditions

object (ObjectConditions)

これらのオブジェクト条件を満たすオブジェクトのみが、データソース オブジェクトとデータシンク オブジェクトのセットに含まれます。オブジェクトの「最終更新日時」に基づくオブジェクト条件では、データシンク内のオブジェクトは除外されません。

transferOptions

object (TransferOptions)

オプション deleteObjectsUniqueInSinktrue で、時間ベースのオブジェクト条件(「最終更新日時」など)が指定されている場合、リクエストは失敗し、INVALID_ARGUMENT エラーが返されます。

transferManifest

object (TransferManifest)

マニフェスト ファイルには、データソースから転送するオブジェクトのリストが指定されます。このフィールドは、マニフェスト ファイルの場所を指定します。指定しない場合は、ソースバケット全体が使用されます。ObjectConditions は引き続き適用されます。

sourceAgentPoolName

string

posix データソースに関連付けられたエージェント プール名を指定します。指定しない場合、デフォルト名が使用されます。

sinkAgentPoolName

string

posix データシンクに関連付けられているエージェント プール名を指定します。指定しない場合、デフォルト名が使用されます。

共用体フィールド data_sink。データの書き込みシンク。data_sink は次のいずれかになります。
gcsDataSink

object (GcsData)

Cloud Storage データシンク。

posixDataSink

object (PosixFilesystem)

POSIX ファイル システムのデータシンク。

共用体フィールド data_source。データの読み取り元。data_source は次のいずれかになります。
gcsDataSource

object (GcsData)

Cloud Storage データソース。

awsS3DataSource

object (AwsS3Data)

AWS S3 データソース。

httpDataSource

object (HttpData)

HTTP URL データソース。

posixDataSource

object (PosixFilesystem)

POSIX ファイル システムのデータソース。

azureBlobStorageDataSource

object (AzureBlobStorageData)

Azure Blob Storage データソース。

awsS3CompatibleDataSource

object (AwsS3CompatibleData)

AWS S3 互換のデータソース。

hdfsDataSource

object (HdfsData)

HDFS クラスタ データソース。

共用体フィールド intermediate_data_location

intermediate_data_location は次のいずれかになります。

gcsIntermediateDataLocation

object (GcsData)

ファイル システム間の転送の場合は、データを転送する中間ロケーションとして使用する Cloud Storage バケットを指定します。

詳細については、ファイル システム間でデータを転送するをご覧ください。

PosixFilesystem

POSIX ファイル システム リソース。

JSON 表現
{
  "rootDirectory": string
}
フィールド
rootDirectory

string

ファイル システムのルート ディレクトリ パス。

AwsS3Data

AwsS3Data リソースはデータソースとして使用できますが、データシンクとして使用することはできません。AwsS3Data リソースでは、オブジェクトの名前は S3 オブジェクトのキー名です。

JSON 表現
{
  "bucketName": string,
  "awsAccessKey": {
    object (AwsAccessKey)
  },
  "path": string,
  "roleArn": string,
  "cloudfrontDomain": string,
  "credentialsSecret": string,

  // Union field private_network can be only one of the following:
  "managedPrivateNetwork": boolean
  // End of list of possible types for union field private_network.
}
フィールド
bucketName

string

必須。S3 バケット名(バケットの作成を参照)。

awsAccessKey

object (AwsAccessKey)

入力のみのAWS S3 バケットへの API リクエストの署名に使用される AWS アクセスキー。バケットに対する権限は、AWS アクセスキーのアクセス ID に付与する必要があります。

ユーザー認証情報に関するデータ保持ポリシーについては、ユーザー認証情報をご覧ください。

path

string

オブジェクトを転送するルートパス。

空の文字列または / で終わるフルパス名にする必要があります。このフィールドはオブジェクトの接頭辞として扱われます。そのため、通常は先頭を「/」にしないことをおすすめします。

roleArn

string

AssumeRoleWithWebIdentity を介して一時認証情報をサポートするロールの Amazon Resource Name(ARN)。ARN の詳細については、IAM ARN をご覧ください。

ロール ARN が指定されている場合、Transfer Service は、このプロジェクトの GoogleServiceAccount を使用して指定されたロールの AssumeRoleWithWebIdentity 呼び出しを使用して、セッションの一時認証情報を取得します。

cloudfrontDomain

string

省略可。このバケットを指す CloudFront ディストリビューション ドメイン名。フェッチ時に使用します。

詳細については、CloudFront 経由で S3 から転送するをご覧ください。

形式: https://{id}.cloudfront.net または有効なカスタム ドメイン。先頭を https:// にする必要があります。

credentialsSecret

string

省略可。Secret Manager 内のシークレットのリソース名。

AWS 認証情報は、Secret Manager に JSON 形式で保存する必要があります。

{ "accessKeyId": "ACCESS_KEY_ID", "secretAccessKey": "SECRET_ACCESS_KEY" }

GoogleServiceAccount には、リソースに対する roles/secretmanager.secretAccessor が付与されている必要があります。

詳細については、送信元へのアクセスを構成する: Amazon S3 をご覧ください。

credentialsSecret を指定する場合は、roleArn または awsAccessKey を指定しないでください。

形式: projects/{projectNumber}/secrets/{secret_name}

共用体フィールド private_network

private_network は次のいずれかになります。

managedPrivateNetwork

boolean

Google が管理するプライベート ネットワーク経由の下り(外向き)バイト数。このネットワークは、Storage Transfer Service の他のユーザーと共有されます。

AwsAccessKey

AWS アクセスキー(AWS セキュリティの認証情報をご覧ください)。

ユーザー認証情報に関するデータ保持ポリシーについては、ユーザー認証情報をご覧ください。

JSON 表現
{
  "accessKeyId": string,
  "secretAccessKey": string
}
フィールド
accessKeyId

string

必須。AWS アクセスキー ID。

secretAccessKey

string

必須。AWS シークレット アクセスキー。このフィールドは RPC レスポンスで返されません。

HttpData

HttpData リソースは、HTTP 経由で転送されるウェブ上のオブジェクトのリストを指定します。転送されるオブジェクトの情報は、URL で参照されるファイルに格納されます。ファイルの 1 行目は、ファイルの形式を指定する "TsvHttpData-1.0" にする必要があります。以降の行には、オブジェクトのリストの情報を指定します。リストのエントリごとに 1 つのオブジェクトです。各エントリには、次のタブ区切りのフィールドがあります。

  • HTTP URL - オブジェクトの場所。

  • 長さ - オブジェクトのサイズ(バイト単位)。

  • MD5 - オブジェクトの base64 でエンコードされた MD5 ハッシュ。

有効な TSV ファイルの例については、URL からデータを転送するをご覧ください。

URL リストに基づいてデータを転送する場合は、次のことに注意してください。

  • http(s)://hostname:port/<URL-path> にあるオブジェクトがデータシンクに転送されると、データシンク内のオブジェクトの名前は <hostname>/<URL-path> になります。

  • オブジェクトの指定サイズが、フェッチされたオブジェクトの実際のサイズと一致しない場合、オブジェクトは転送されません。

  • 指定された MD5 が、転送されたバイトから計算された MD5 と一致しない場合、オブジェクトの転送は失敗します。

  • 指定した各 URL が一般公開されていることを確認します。たとえば、Cloud Storage では、オブジェクトを一般公開で共有し、そのオブジェクトへのリンクを取得できます。

  • Storage Transfer Service は robots.txt ルールに準拠しており、送信元 HTTP サーバーが Range リクエストをサポートし、各レスポンスで Content-Length ヘッダーを返すことを要求します。

  • 転送するオブジェクトをフィルタする場合、ObjectConditions は効果がありません。

JSON 表現
{
  "listUrl": string
}
フィールド
listUrl

string

必須。オブジェクト リスト エントリを格納するファイルを指す URL。このファイルは一般公開を許可する必要があります。現在、サポートされているのは HTTP と HTTPS のスキームを持つ URL のみです。

AzureBlobStorageData

AzureBlobStorageData リソースはデータソースとして使用できますが、データシンクとして使用することはできません。AzureBlobStorageData リソースは 1 つの Azure コンテナを表します。ストレージ アカウントは、Azure エンドポイントを決定します。AzureBlobStorageData リソースでは、blob の名前は Azure Blob Storage blob のキー名です。

JSON 表現
{
  "storageAccount": string,
  "azureCredentials": {
    object (AzureCredentials)
  },
  "container": string,
  "path": string,
  "credentialsSecret": string
}
フィールド
storageAccount

string

必須。Azure Storage アカウントの名前。

azureCredentials

object (AzureCredentials)

必須。入力のみのAzure への API リクエストの認証に使用される認証情報。

ユーザー認証情報に関するデータ保持ポリシーについては、ユーザー認証情報をご覧ください。

container

string

必須。Azure Storage アカウントから転送するコンテナ。

path

string

オブジェクトを転送するルートパス。

空の文字列または / で終わるフルパス名にする必要があります。このフィールドはオブジェクトの接頭辞として扱われます。そのため、通常は先頭を「/」にしないことをおすすめします。

credentialsSecret

string

省略可。Secret Manager 内のシークレットのリソース名。

Azure SAS トークンは、Secret Manager に JSON 形式で保存する必要があります。

{ "sasToken" : "SAS_TOKEN" }

GoogleServiceAccount には、リソースに対する roles/secretmanager.secretAccessor が付与されている必要があります。

詳細については、ソースへのアクセスを構成する: Microsoft Azure Blob Storage をご覧ください。

credentialsSecret を指定する場合は、azureCredentials を指定しないでください。

形式: projects/{projectNumber}/secrets/{secret_name}

AzureCredentials

Azure 認証情報

ユーザー認証情報に関するデータ保持ポリシーについては、ユーザー認証情報をご覧ください。

JSON 表現
{
  "sasToken": string
}
フィールド
sasToken

string

必須。Azure Shared Access Signature(SAS)。

SAS の詳細については、Shared Access Signature(SAS)を使用した Azure Storage リソースへのアクセスの制限を付与するをご覧ください。

AwsS3CompatibleData

AwsS3CompatibleData リソース。

JSON 表現
{
  "bucketName": string,
  "path": string,
  "endpoint": string,
  "region": string,

  // Union field data_provider can be only one of the following:
  "s3Metadata": {
    object (S3CompatibleMetadata)
  }
  // End of list of possible types for union field data_provider.
}
フィールド
bucketName

string

必須。バケットの名前を指定します。

path

string

オブジェクトを転送するルートパスを指定します。

空の文字列または / で終わるフルパス名にする必要があります。このフィールドはオブジェクトの接頭辞として扱われます。そのため、通常は先頭を「/」にしないことをおすすめします。

endpoint

string

必須。ストレージ サービスのエンドポイントを指定します。

region

string

リクエストに署名するリージョンを指定します。リクエストに空のリージョンで署名する場合は、空白のままにします。

共用体フィールド data_provider。S3 互換データ プロバイダのメタデータを指定します。各プロバイダには、すべての S3 互換データ プロバイダに適用されない属性が含まれている場合があります。指定しない場合、デフォルトで S3CompatibleMetadata が使用されます。data_provider は次のいずれかになります。
s3Metadata

object (S3CompatibleMetadata)

S3 互換のメタデータ。

S3CompatibleMetadata

S3CompatibleMetadata には、S3 互換データ プロバイダの基本タイプに適用されるメタデータ フィールドが含まれています。

JSON 表現
{
  "authMethod": enum (AuthMethod),
  "requestModel": enum (RequestModel),
  "protocol": enum (NetworkProtocol),
  "listApi": enum (ListApi)
}
フィールド
authMethod

enum (AuthMethod)

ストレージ サービスで使用される認証方法と認可方法を指定します。指定しない場合、Transfer Service は使用する適切な認証方法を特定しようとします。

requestModel

enum (RequestModel)

ストレージ サービスの呼び出しに使用する API リクエスト モデルを指定します。指定しない場合、RequestModel の REQUEST_MODEL_VIRTUAL_HOSTED_STYLE のデフォルト値が使用されます。

protocol

enum (NetworkProtocol)

エージェントのネットワーク プロトコルを指定します。指定しない場合、NetworkProtocol NETWORK_PROTOCOL_HTTPS のデフォルト値が使用されます。

listApi

enum (ListApi)

オブジェクトの検出に使用する Listing API。指定しない場合、Transfer Service は使用する適切な API を特定しようとします。

AuthMethod

ストレージ サービスで使用される認証と承認の方法。

列挙型
AUTH_METHOD_UNSPECIFIED AuthMethod が指定されていません。
AUTH_METHOD_AWS_SIGNATURE_V4 AWS SigV4 でリクエストを認証します。
AUTH_METHOD_AWS_SIGNATURE_V2 AWS SigV2 でリクエストを認証します。

RequestModel

API のリクエスト モデル。

列挙型
REQUEST_MODEL_UNSPECIFIED RequestModel が指定されていません。
REQUEST_MODEL_VIRTUAL_HOSTED_STYLE 仮想ホスト型を使用してリクエストを実行します。例: https://bucket-name.s3.region.amazonaws.com/key-name
REQUEST_MODEL_PATH_STYLE パススタイルを使用してリクエストを実行します。例: https://s3.region.amazonaws.com/bucket-name/key-name

NetworkProtocol

ストレージ サービスにアクセスするエージェント ネットワーク プロトコル。

列挙型
NETWORK_PROTOCOL_UNSPECIFIED NetworkProtocol が指定されていません。
NETWORK_PROTOCOL_HTTPS HTTPS を使用してリクエストを実行します。
NETWORK_PROTOCOL_HTTP 推奨されない: データはクリアテキストで送信されます。これは、閉鎖したネットワーク内または一般公開されているデータにのみ適しています。HTTP を使用してリクエストを実行します。

ListApi

オブジェクトの検出に使用する Listing API。

列挙型
LIST_API_UNSPECIFIED ListApi が指定されていません。
LIST_OBJECTS_V2 ListObjectsV2 API を使用して一覧表示を実行します。
LIST_OBJECTS 以前の ListObjects API。

HdfsData

HdfsData リソースは、HDFS エンティティ(クラスタなど)内のパスを指定します。クラスタ固有の設定(名前ノードやポートなど)はすべて、リクエストを処理する転送エージェントで構成されるため、HdfsData には転送中のデータのルートパスのみが含まれます。

JSON 表現
{
  "path": string
}
フィールド
path

string

ファイルを転送するルートパス。

TransferManifest

マニフェストの場所を指定します。

JSON 表現
{
  "location": string
}
フィールド
location

string

Cloud Storage 内のマニフェストへのパスを指定します。転送用の Google 管理サービス アカウントには、このオブジェクトに対する storage.objects.get 権限が必要です。パスの例は gs://bucketName/path/manifest.csv です。