このページでは、転送ジョブを作成して開始する方法について説明します。
ソースと宛先(シンクとも呼ばれます)が Storage Transfer Service でサポートされているかどうかを確認するには、サポートされているソースとシンクをご覧ください。
エージェントとエージェント プール
ソースと宛先によっては、エージェント プールの作成と構成を行い、転送元または転送先にアクセスできるマシンにエージェントをインストールする必要がある場合があります。
Amazon S3、Microsoft Azure、URL リスト、Cloud Storage から Cloud Storage への転送には、エージェントとエージェント プールは必要ありません。
ソースと宛先がファイル システムである転送、または S3 互換ストレージからの転送には、エージェントとエージェント プールが必要です。手順については、エージェント プールの管理をご覧ください。
始める前に
転送を構成する前に、次のアクセス権が構成されていることを確認してください。
- ユーザーとサービス アカウント。
- ソースデータと宛先。
gcloud
コマンドを使用している場合は、gcloud CLI をインストールしてください。
転送を作成する
Google Cloud コンソール
Google Cloud コンソールのストレージの [Data Transfer] ページに移動します。
[転送ジョブを作成] をクリックします。[転送ジョブの作成] ページが表示されます。
ソースを選択します。
Cloud Storage
ソースバケットと宛先バケットを選択するには、ユーザー アカウントに storage.buckets.get 権限が必要です。バケットの名前を直接入力することもできます。詳細については、アクセスのトラブルシューティングをご覧ください。
[参照元の種類] で、[Google Cloud Storage] を選択します。
[宛先の種類] を選択して、[次のステップ] をクリックします。
次のいずれかの方法で、バケットとそのバケット内のフォルダ(必要に応じて)を選択します。
[バケットまたはフォルダ] フィールドに、接頭辞
gs://
を付けずに既存の Cloud Storage バケット名とパスを入力します。例:my-test-bucket/path/to/files
。別のプロジェクトの Cloud Storage バケットを指定するには、[バケット名] フィールドに名前を正確に入力します。[参照] をクリックしてバケットを選択し、プロジェクト内の既存のバケットのリストを選択します。
[参照] をクリックし、[プロジェクト ID] をクリックして新しいプロジェクト ID とバケットを選択すると、他のプロジェクトのバケットを選択できます。
新しいバケットを作成するには、[
新しいバケットを作成] をクリックします。
- (省略可)ソースにファイルのサブセットを追加するには、[接頭辞を追加] をクリックします。ファイル名の接頭辞に基づいてファイルを追加できます。詳細については、接頭辞でフィルタするをご覧ください。
- (省略可)転送にその他のフィルタを適用するには、[高度なフィルタ] をクリックします。次の項目が表示されます。
- 次で始まるファイルを除外する: 指定した名前の接頭辞に基づいて、転送からファイルを除外します。接頭辞を指定するには、[接頭辞を追加] をクリックします。
-
前回変更されたファイルのみを含める: 転送前に最後に変更された時点に基づいて、転送にファイルを追加します。
絶対期間と相対期間を指定できます。相対期間は、転送の開始時間を基準にしています。
[次のステップ] をクリックします。
Amazon S3
[参照元の種類] で [Amazon S3] を選択します。
[次のステップ] をクリックします。
[バケット名] フィールドに、ソースバケットの名前を入力します。
このバケット名は、AWS Management Console に表示される名前です。
アマゾン ウェブ サービス(AWS)の認証方法を選択します。ID 連携のために AWS アクセスキーや Amazon Resource Name(ARN)を指定できます。
アクセスキー: [アクセスキー ID] フィールドにアクセスキーを入力し、[シークレット アクセスキー] フィールドにアクセス キーに関連付けられたシークレットを入力します。
ARN: [AWS IAM ロールの ARN] フィールドに次の構文で ARN を入力します。
arn:aws:iam::ACCOUNT:role/ROLE-NAME-WITH-PATH
ここで
ACCOUNT
: ハイフンのない AWS アカウント ID。ROLE-NAME-WITH-PATH
: パスを含む AWS ロール名。
ARN の詳細については、IAM ARN をご覧ください。
[次のステップ] をクリックします。
- (省略可)ソースにファイルのサブセットを追加するには、[接頭辞を追加] をクリックします。ファイル名の接頭辞に基づいてファイルを追加できます。詳細については、接頭辞でフィルタするをご覧ください。
- (省略可)転送にその他のフィルタを適用するには、[高度なフィルタ] をクリックします。次の項目が表示されます。
- 次で始まるファイルを除外する: 指定した名前の接頭辞に基づいて、転送からファイルを除外します。接頭辞を指定するには、[接頭辞を追加] をクリックします。
-
前回変更されたファイルのみを含める: 転送前に最後に変更された時点に基づいて、転送にファイルを追加します。
絶対期間と相対期間を指定できます。相対期間は、転送の開始時間を基準にしています。
S3 互換ストレージ
[ソースタイプ] で、[S3 互換のオブジェクト ストレージ] を選択します。
[次のステップ] をクリックします。
この転送に必要な情報を指定します。
この転送に構成したエージェント プールを選択します。
エンドポイントに対応するバケット名を入力します。たとえば、データが次の場所に存在するとします。
https://us-east-1.example.com/folder1/bucket_a
「
folder1/bucket_a
」と入力します。エンドポイントを入力します。プロトコル(
http://
またはhttps://
)は含めないでください。前の手順の例では、次のように入力します。us-east-1.example.com
この転送の任意の属性を指定します。
リクエストの署名に使用する署名のリージョンを入力します。ソースで署名のリージョンが必要ない場合は、このフィールドを空のままにします。
このリクエストの署名プロセスを選択します。
アドレス指定スタイルを選択します。これにより、バケット名がパススタイル(
https://s3.region.example.com/bucket-name/key-name
など)で提供されるのか、仮想ホストタイプ(https://bucket-name.s3.region.example.com/key-name
)で提供されるのかが決まります。詳しくは、Amazon のドキュメントの[バケットの仮想ホスティング]をご覧ください。ネットワーク プロトコルを選択します。
使用する Listing API のバージョンを選択します。詳細については、ListObjectsV2 と ListObjects のドキュメントをご覧ください。
[次のステップ] をクリックします。
Microsoft Azure Blob Storage
[参照元の種類] で、[Azure Blob Storage または Data Lake Storage Gen2] を選択します。
[次のステップ] をクリックします。
以下を指定します。
ストレージ アカウント名 - ソースの Microsoft Azure Storage アカウント名。
ストレージ アカウント名は、Microsoft Azure Storage ポータルの [すべてのサービス] > [ストレージ] > [ストレージ アカウント] に表示されます。
コンテナ名 - Microsoft Azure Storage のコンテナ名。
コンテナ名は、Microsoft Azure Storage ポータルの [ストレージ エクスプローラー] > [BLOB コンテナー] に表示されます。
Shared Access Signature(SAS) - 格納されているアクセス ポリシーから作成された Microsoft Azure Storage SAS のトークン。詳細については、Shared Access Signature(SAS)を使用した Azure Storage リソースへのアクセスの制限を付与するをご覧ください。
SAS トークンのデフォルトの有効期限は 8 時間です。SAS トークンを作成する際は、転送を正常に完了できるように、十分な有効期限を設定してください。
- (省略可)ソースにファイルのサブセットを追加するには、[接頭辞を追加] をクリックします。ファイル名の接頭辞に基づいてファイルを追加できます。詳細については、接頭辞でフィルタするをご覧ください。
- (省略可)転送にその他のフィルタを適用するには、[高度なフィルタ] をクリックします。次の項目が表示されます。
- 次で始まるファイルを除外する: 指定した名前の接頭辞に基づいて、転送からファイルを除外します。接頭辞を指定するには、[接頭辞を追加] をクリックします。
-
前回変更されたファイルのみを含める: 転送前に最後に変更された時点に基づいて、転送にファイルを追加します。
絶対期間と相対期間を指定できます。相対期間は、転送の開始時間を基準にしています。
[次のステップ] をクリックします。
ファイル システム
[ソースタイプ] で、[POSIX ファイル システム] を選択します。
[宛先の種類] を選択して、[次のステップ] をクリックします。
既存のエージェント プールを選択するか、[エージェント プールの作成] を選択し、手順に沿って新しいプールを作成します。
ファイル システム ディレクトリの完全修飾パスを指定します。
[次のステップ] をクリックします。
URL リスト
[参照元の種類] で、[URL リスト] を選択し、[次のステップ] をクリックします。
[TSV ファイルの URL] で、タブ区切りの値(TSV)ファイルの URL を指定します。TSV ファイルを作成する方法について詳しくは、URL リストの作成をご覧ください。
- (省略可)ソースにファイルのサブセットを追加するには、[接頭辞を追加] をクリックします。ファイル名の接頭辞に基づいてファイルを追加できます。詳細については、接頭辞でフィルタするをご覧ください。
- (省略可)転送にその他のフィルタを適用するには、[高度なフィルタ] をクリックします。次の項目が表示されます。
- 次で始まるファイルを除外する: 指定した名前の接頭辞に基づいて、転送からファイルを除外します。接頭辞を指定するには、[接頭辞を追加] をクリックします。
-
前回変更されたファイルのみを含める: 転送前に最後に変更された時点に基づいて、転送にファイルを追加します。
絶対期間と相対期間を指定できます。相対期間は、転送の開始時間を基準にしています。
[次のステップ] をクリックします。
宛先を選択します。
Cloud Storage
[バケットまたはフォルダ] フィールドに、ソースバケットと(必要に応じて)フォルダ名を入力するか、[参照] をクリックして、現在のプロジェクトにある既存のバケットリストからバケットを選択します。新しいバケットを作成するには、[
新しいバケットを作成] をクリックします。
[次のステップ] をクリックします。
転送ジョブの設定を選択します。一部のオプションは、特定のソースとシンクの組み合わせでのみ使用できます。
[説明] フィールドに、転送の説明を入力します。ジョブを区別できるように、意味のある一意の説明を入力することをおすすめします。
[メタデータのオプション] で、デフォルトのオプションを使用するか、[オプションを表示して選択する] をクリックして、サポートされているすべてのメタデータの値を指定します。詳細については、メタデータの保持をご覧ください。
[上書きの条件] で、次のいずれかを選択します。
異なる場合: ソースファイルの名前が同じで ETag またはチェックサムの値が異なる場合、宛先ファイルを上書きします。
常に: ソースファイルが同じ名前の場合、同一であっても常に宛先ファイルを上書きします。
[削除のタイミング] で、次のいずれかを選択します。
なし: ソースと宛先のどちらからもファイルを削除しません。
転送後にソースからファイルを削除する: 転送先に移行した後、ソースからファイルを削除します。
転送元にもないファイルを転送先から削除する: 転送先の Cloud Storage バケット内のファイルが転送元にもない場合は、Cloud Storage バケットからファイルを削除します。
このオプションにより、宛先の Cloud Storage バケットが移行元と完全に一致することが保証されます。
[通知オプション] で、Pub/Sub トピックと通知するイベントを選択します。詳細については、Pub/Sub 通知をご覧ください。
[次のステップ] をクリックします。
ファイル システム
既存のエージェント プールを選択するか、[エージェント プールの作成] を選択し、手順に沿って新しいプールを作成します。
宛先ディレクトリの完全修飾パスを指定します。
[次のステップ] をクリックします。
スケジュール オプションを選択します。
[1 回だけ実行] プルダウン リストから、次のいずれかを選択します。
1 回だけ実行: 選択した時間に、1 回だけ転送を行います。
毎日実行: 転送は毎日、選択した時刻に開始されます。
オプションの [終了日] を入力することも、[終了日] を空白のままにして転送を継続的に実行することもできます。
毎週実行: 選択した時間に毎週転送を実行します。
カスタム頻度で実行: 選択した頻度で転送を実行します。転送は、時間、日、週の間隔で定期的に繰り返すように設定できます。
オプションの [終了日] を入力することも、[終了日] を空白のままにして転送を継続的に実行することもできます。
[今すぐ開始] プルダウン リストから、次のいずれかを選択します。
今すぐ開始: [作成] をクリックすると転送が開始されます。
開始日: 選択した日時に転送を開始します。[カレンダー] をクリックして、カレンダーから開始日を選択します。
転送ジョブを作成するには、[作成] をクリックします。
gcloud CLI
新しい転送ジョブを作成するには、gcloud transfer jobs create
コマンドを使用します。スケジュールまたは --do-not-run
が指定されていない限り、新しいジョブを作成すると、指定された転送が開始します。
gcloud transfer jobs create \
SOURCE DESTINATION
ここで
SOURCE は、この転送のデータソースです。各ソースの形式は次のとおりです。
- Cloud Storage:
gs://BUCKET_NAME
。特定のフォルダから転送するには、末尾のスラッシュを含めてgs://BUCKET_NAME/FOLDER_PATH/
を指定します。 - Amazon S3:
s3://BUCKET_NAME/FOLDER_PATH
- S3 互換ストレージ:
s3://BUCKET_NAME
バケット名はエンドポイントからの相対名です。たとえば、データがhttps://us-east-1.example.com/folder1/bucket_a
に存在する場合は「s3://folder1/bucket_a
」と入力します。 - Microsoft Azure Storage:
https://myaccount.blob.core.windows.net/CONTAINER_NAME
- URL リスト:
https://PATH_TO_URL_LIST
またはhttp://PATH_TO_URL_LIST
- POSIX ファイル システム:
posix:///PATH
。これは、エージェント ホストマシンのルートからの絶対パスである必要があります。
- Cloud Storage:
DESTINATION は次のいずれかです。
- Cloud Storage:
gs://BUCKET_NAME
。特定のディレクトリに転送するには、末尾のスラッシュを含めてgs://BUCKET_NAME/FOLDER_PATH/
を指定します。 - POSIX ファイル システム:
posix:///PATH
。これは、エージェント ホストマシンのルートからの絶対パスである必要があります。
- Cloud Storage:
転送で転送エージェントが必要な場合、次のオプションを使用できます。
--source-agent-pool
には、この転送に使用するソース エージェント プールを指定します。ファイル システムからの転送の場合は必須。--destination-agent-pool
には、この転送に使用する転送先エージェント プールを指定します。ファイル システムへの転送の場合は必須。--intermediate-storage-path
は、Cloud Storage バケットへのパスです(形式はgs://my-intermediary-bucket
)。2 つのファイル システム間の転送の場合は必須。中間バケットの作成の詳細については、中間ストレージとして Cloud Storage バケットを作成するをご覧ください。
上記以外に次のようなオプションがあります。
--source-creds-file
には、転送元の AWS または Azure 認証情報を含むマシン上のローカル ファイルへの相対パスを指定します。認証情報ファイルの形式については、TransferSpec のリファレンスをご覧ください。--do-not-run
は、コマンドの送信時に Storage Transfer Service がジョブを実行しないようにします。ジョブを実行するには、更新してスケジュールを追加するか、jobs run
を使用して手動で開始します。--manifest-file
には、ソースから転送するファイルのリストを含む Cloud Storage 内の CSV ファイルのパスを指定します。マニフェスト ファイルの形式については、マニフェストを使用して特定のファイルまたはオブジェクトを転送するをご覧ください。ジョブ情報:
--name
、--description
、--source-creds-file
を指定できます。スケジュール:
--schedule-starts
、--schedule-repeats-every
、--schedule-repeats-until
、または--do-not-run
を指定します。オブジェクト条件: 条件を使用して、転送するオブジェクトを決定します。これには、
--include-prefixes
と--exclude-prefixes
、--include-modified-[before | after]-[absolute | relative]
の時間ベースの条件が含まれます。オブジェクト条件は、ファイル システムに関連する転送ではサポートされません。詳細については、転送するソース オブジェクトの選択をご覧ください。転送オプション: 宛先ファイルを上書きするかどうか(
--overwrite-when=different
またはalways
)、転送中または転送後に特定のファイルを削除するかどうか(--delete-from=destination-if-unique
またはsource-after-transfer
)を指定します。保持するメタデータ値(--preserve-metadata
)を指定することや、転送されたオブジェクトにストレージ クラスを設定することもできます(--custom-storage-class
)。通知:
--notification-pubsub-topic
、--notification-event-types
、--notification-payload-format
を使用して、転送の Pub/Sub 通知を構成します。Cloud Logging:
--log-actions
と--log-action-states
を使用して、エージェントレス転送または S3 互換ソースからの転送に対して Cloud Logging を有効にします。詳細については、Storage Transfer Service の Cloud Logging をご覧ください。
S3 互換ソースからの転送でも、次のオプションが使用されます。
--source-endpoint
(必須)には、ストレージ システムのエンドポイントを指定します。例:s3.example.com
。正しい形式についてはプロバイダにお問い合わせください。プロトコル(http://
またはhttps://
)は指定しないでください。--source-signing-region
には、リクエストに署名するリージョンを指定します。ストレージ プロバイダが署名のリージョンを必要としない場合は、このフラグを省略します。--source-auth-method
には、使用する認証方法を指定します。有効な値はAWS_SIGNATURE_V2
またはAWS_SIGNATURE_V4
です。詳しくは、Amazon の SigV4 と SigV2 のドキュメントをご覧ください。--source-request-model
には、使用するアドレス指定スタイルを指定します。有効な値はPATH_STYLE
またはVIRTUAL_HOSTED_STYLE
です。パススタイルにはhttps://s3.example.com/BUCKET_NAME/KEY_NAME
の形式を使用します。仮想ホストスタイルでは、https://BUCKET_NAME.s3.example.com/KEY_NAME の形式を使用します。--source-network-protocol
には、エージェントがこのジョブに使用するネットワーク プロトコルを指定します。有効な値はHTTP
またはHTTPS
です。--source-list-api
には、バケットからオブジェクトを返すための S3 Listing API のバージョンを指定します。有効な値はLIST_OBJECTS
またはLIST_OBJECTS_V2
です。詳しくは、Amazon の ListObjectsV2 と ListObjects のドキュメントをご覧ください。
すべてのオプションを表示するには、gcloud transfer jobs create --help
を実行するか、gcloud
リファレンス ドキュメントをご覧ください。
例
Amazon S3 から Cloud Storage
次のコマンドを実行して、毎日の転送ジョブを作成し、過去 1 日間に変更されたデータを s3://my-s3-bucket
から my-storage-bucket
という Cloud Storage バケットに移動します。
gcloud transfer jobs create \
s3://my-s3-bucket gs://my-storage-bucket \
--source-creds-file=/examplefolder/creds.txt \
--include-modified-after-relative=1d \
--schedule-repeats-every=1d
S3 互換ストレージから Cloud Storage
S3 互換ソースから Cloud Storage バケットに転送するには:
gcloud transfer jobs create s3://my-s3-compat-bucket gs://my-storage-bucket \
--source-agent-pool=my-source-agent-pool
--source-endpoint=us-east-1.example.com/ \
--source-auth-method=AWS_SIGNATURE_V2 \
--source-request-model=PATH_STYLE \
--source-network-protocol=HTTPS \
--source-list-api=LIST_OBJECTS_V2
ファイル システムから Cloud Storage
ファイル システムから Cloud Storage バケットに転送するには、次のように指定します。
gcloud transfer jobs create \
posix:///tmp/source gs://my-storage-bucket \
--source-agent-pool=my-source-agent-pool
Cloud Storage からファイル システム
Cloud Storage バケットからファイル システムに転送するには、次のように指定します。
gcloud transfer jobs create \
gs://my-storage-bucket posix:///tmp/destination \
--destination-agent-pool=my-destination-agent-pool
ファイル システム間
2 つのファイル システム間で転送するには、ソース エージェント プール、宛先エージェント プール、およびデータが通過する中間 Cloud Storage バケットを指定する必要があります。
中間バケットの詳細については、中間ストレージとして Cloud Storage バケットを作成するをご覧ください。
transfer jobs create
を呼び出すときに、次の 3 つのリソースを指定します。
gcloud transfer jobs create \
posix:///tmp/source/on/systemA posix:///tmp/destination/on/systemB \
--source-agent-pool=source_agent_pool \
--destination-agent-pool=destination_agent_pool \
--intermediate-storage-path=gs://my-intermediary-bucket
REST
次のサンプルは、REST API を介して Storage Transfer Service を使用する方法を示しています。
Storage Transfer Service API を使用して転送ジョブを構成または編集する場合は、時刻を UTC で設定してください。転送ジョブのスケジュールの指定方法については、スケジュールをご覧ください。
Cloud Storage バケット間の転送
この例では、Cloud Storage バケット間でファイルを移動する方法について説明します。たとえば、別のロケーションのバケットにデータを移動できます。
transferJobs create を使ってリクエストします。
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "gcsDataSource": { "bucketName": "GCS_SOURCE_NAME" }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" }, "transferOptions": { "deleteObjectsFromSourceAfterTransfer": true } } }レスポンス:
200 OK { "transferJob": [ { "creationTime": "2015-01-01T01:01:00.000000000Z", "description": "YOUR DESCRIPTION", "name": "transferJobs/JOB_ID", "status": "ENABLED", "lastModificationTime": "2015-01-01T01:01:00.000000000Z", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "gcsDataSource": { "bucketName": "GCS_SOURCE_NAME", }, "gcsDataSink": { "bucketName": "GCS_NEARLINE_SINK_NAME" }, "objectConditions": { "minTimeElapsedSinceLastModification": "2592000.000s" }, "transferOptions": { "deleteObjectsFromSourceAfterTransfer": true } } } ] }
Amazon S3 から Cloud Storage への転送
この例では、Amazon S3 から Cloud Storage バケットにファイルを移動します。Amazon S3 から Cloud Storage にデータを移動した場合にどのような影響があるかを理解するために、Amazon S3 へのアクセスを構成すると料金の記事を必ずご確認ください。
転送ジョブを作成する場合は、Amazon S3 バケットソース名に bucketName
の s3://
接頭辞を含めないでください。
transferJobs create を使ってリクエストします。
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "scheduleEndDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }レスポンス:
200 OK { "transferJob": [ { "creationTime": "2015-01-01T01:01:00.000000000Z", "description": "YOUR DESCRIPTION", "name": "transferJobs/JOB_ID", "status": "ENABLED", "lastModificationTime": "2015-01-01T01:01:00.000000000Z", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "scheduleEndDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME" }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" }, "objectConditions": {}, "transferOptions": {} } } ] }
Microsoft Azure Blob Storage と Cloud Storage の間の転送
この例では、Microsoft Azure Storage の共有アクセス署名(SAS)トークンを使用して、Microsoft Azure Storage から Cloud Storage バケットにファイルを移動する方法について学習します。
Microsoft Azure Storage SAS の詳細については、Shared Access Signature(SAS)を使用した Azure Storage リソースへのアクセスの制限を付与するをご覧ください。
開始する前に、Microsoft Azure Storage へのアクセスを構成すると料金を確認して、Microsoft Azure Storage から Cloud Storage にデータを移動した場合にどのような影響があるかを把握してください。
transferJobs create を使ってリクエストします。
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 14, "month": 2, "year": 2020 }, "scheduleEndDate": { "day": 14 "month": 2, "year": 2020 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "azureBlobStorageDataSource": { "storageAccount": "AZURE_SOURCE_NAME", "azureCredentials": { "sasToken": "AZURE_SAS_TOKEN", }, "container": "AZURE_CONTAINER", }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }レスポンス:
200 OK { "transferJob": [ { "creationTime": "2020-02-14T01:01:00.000000000Z", "description": "YOUR DESCRIPTION", "name": "transferJobs/JOB_ID", "status": "ENABLED", "lastModificationTime": "2020-02-14T01:01:00.000000000Z", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 14 "month": 2, "year": 2020 }, "scheduleEndDate": { "day": 14, "month": 2, "year": 2020 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "azureBlobStorageDataSource": { "storageAccount": "AZURE_SOURCE_NAME", "azureCredentials": { "sasToken": "AZURE_SAS_TOKEN", }, "container": "AZURE_CONTAINER", }, "objectConditions": {}, "transferOptions": {} } } ] }
ファイル システムから転送する
この例では、POSIX ファイル システムから Cloud Storage バケットにファイルを移動する方法について学習します。
posixDataSource
で transferJobs.create を使用します。
POST https://storagetransfer.googleapis.com/v1/transferJobs { "name":"transferJobs/sample_transfer", "description": "My First Transfer", "status": "ENABLED", "projectId": "my_transfer_project_id", "schedule": { "scheduleStartDate": { "year": 2022, "month": 5, "day": 2 }, "startTimeOfDay": { "hours": 22, "minutes": 30, "seconds": 0, "nanos": 0 } "scheduleEndDate": { "year": 2022, "month": 12, "day": 31 }, "repeatInterval": { "259200s" }, }, "transferSpec": { "posixDataSource": { "rootDirectory": "/bar/", }, "sourceAgentPoolName": "my_example_pool", "gcsDataSink": { "bucketName": "destination_bucket" "path": "foo/bar/" }, } }
schedule
フィールドは省略可能です。省略した場合は、transferJobs.run
リクエストで転送ジョブを開始する必要があります。
ジョブの作成後に転送のステータスを確認するには、transferJobs.get
を使用します。
GET https://storagetransfer.googleapis.com/v1/transferJobs/sample_transfer?project_id=my_transfer_project_id
ソースパスと宛先パスの指定
ソースと宛先のパスを使用すると、Cloud Storage バケットにデータを転送するときに、ソースと宛先のディレクトリを指定できます。たとえば、file1.txt
、file2.txt
というファイルと、B
という Cloud Storage バケットがあるとします。my-stuff
という宛先パスを設定した場合、転送の完了後、ファイルは gs://B/my-stuff/file1.txt
と gs://B/my-stuff/file2.txt
に配置されます。
ソースパスの指定
転送ジョブを作成するときにソースパスを指定するには、TransferSpec
仕様の gcsDataSource
フィールドに path
フィールドを追加します。
{ gcsDataSource: { bucketName: "SOURCE_BUCKET", path: "SOURCE_PATH/", }, }
この例では以下の情報が表示されます。
- SOURCE_BUCKET: 転送元の Cloud Storage バケット。
- SOURCE_PATH: 転送元の Cloud Storage のパス。
転送先のパスの指定
転送ジョブを作成するときに転送先フォルダを指定するには、TransferSpec
仕様の gcsDataSink
フィールドに path
フィールドを追加します。
{ gcsDataSink: { bucketName: "DESTINATION_BUCKET", path: "DESTINATION_PATH/", }, }
この例では次のようになります。
- DESTINATION_BUCKET: 転送先の Cloud Storage バケット。
- DESTINATION_PATH: 転送先の Cloud Storage のパス。
完全なリクエストの例
次に、完全なリクエストの例を示します。
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "YOUR DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "schedule": { "scheduleStartDate": { "day": 1, "month": 1, "year": 2015 }, "startTimeOfDay": { "hours": 1, "minutes": 1 } }, "transferSpec": { "gcsDataSource": { "bucketName": "GCS_SOURCE_NAME", "path": "GCS_SOURCE_PATH", }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME", "path": "GCS_SINK_PATH", }, "objectConditions": { "minTimeElapsedSinceLastModification": "2592000s" }, "transferOptions": { "deleteObjectsFromSourceAfterTransfer": true } } }
クライアント ライブラリ
次のサンプルは、Go、Java、Node.js、Python のプログラムで Storage Transfer Service を使用する方法を示しています。
転送ジョブをプログラムで構成または編集する場合は、時刻を UTC で設定してください。転送ジョブのスケジュールの指定方法について詳しくは、スケジュールをご覧ください。
Storage Transfer Service クライアント ライブラリの詳細については、Storage Transfer Service クライアント ライブラリ スタートガイドをご覧ください。
Cloud Storage バケット間の転送
この例では、Cloud Storage バケット間でファイルを移動する方法について説明します。たとえば、別のロケーションのバケットにデータを移動できます。
Go
Java
古いサンプルをお探しの場合Storage Transfer Service 移行ガイドをご覧ください。
Node.js
Python
古いサンプルをお探しの場合Storage Transfer Service 移行ガイドをご覧ください。
Amazon S3 から Cloud Storage への転送
この例では、Amazon S3 から Cloud Storage バケットにファイルを移動します。Amazon S3 から Cloud Storage にデータを移動した場合にどのような影響があるかを理解するために、Amazon S3 へのアクセスを構成すると料金の記事を必ずご確認ください。
転送ジョブを作成する場合は、Amazon S3 バケットソース名に bucketName
の s3://
接頭辞を含めないでください。
Go
Java
古いサンプルをお探しの場合Storage Transfer Service 移行ガイドをご覧ください。
Node.js
Python
古いサンプルをお探しの場合Storage Transfer Service 移行ガイドをご覧ください。
Microsoft Azure Blob Storage と Cloud Storage の間の転送
この例では、Microsoft Azure Storage の共有アクセス署名(SAS)トークンを使用して、Microsoft Azure Storage から Cloud Storage バケットにファイルを移動する方法について学習します。
Microsoft Azure Storage SAS の詳細については、Shared Access Signature(SAS)を使用した Azure Storage リソースへのアクセスの制限を付与するをご覧ください。
開始する前に、Microsoft Azure Storage へのアクセスを構成すると料金を確認して、Microsoft Azure Storage から Cloud Storage にデータを移動した場合にどのような影響があるかを把握してください。
Go
Storage Transfer Service 用のクライアント ライブラリをインストールして使用する方法については、Storage Transfer Service のクライアント ライブラリをご覧ください。詳細については、Storage Transfer Service Go API のリファレンス ドキュメントをご覧ください。
Storage Transfer Service の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Storage Transfer Service 用のクライアント ライブラリをインストールして使用する方法については、Storage Transfer Service のクライアント ライブラリをご覧ください。詳細については、Storage Transfer Service Java API のリファレンス ドキュメントをご覧ください。
Storage Transfer Service の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Storage Transfer Service 用のクライアント ライブラリをインストールして使用する方法については、Storage Transfer Service のクライアント ライブラリをご覧ください。詳細については、Storage Transfer Service Node.js API のリファレンス ドキュメントをご覧ください。
Storage Transfer Service の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Storage Transfer Service 用のクライアント ライブラリをインストールして使用する方法については、Storage Transfer Service のクライアント ライブラリをご覧ください。詳細については、Storage Transfer Service Python API のリファレンス ドキュメントをご覧ください。
Storage Transfer Service の認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
ファイル システムから転送する
この例では、POSIX ファイル システムから Cloud Storage バケットにファイルを移動する方法について学習します。