TransferSpec

Konfigurasi untuk menjalankan transfer.

Representasi 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.
}
Kolom
objectConditions

object (ObjectConditions)

Hanya objek yang memenuhi kondisi objek ini yang disertakan dalam kumpulan objek sumber data dan sink data. Kondisi objek berdasarkan "waktu perubahan terakhir" objek tidak mengecualikan objek di sink data.

transferOptions

object (TransferOptions)

Jika opsi deleteObjectsUniqueInSink adalah true dan kondisi objek berbasis waktu seperti 'waktu perubahan terakhir' ditentukan, permintaan akan gagal dengan error INVALID_ARGUMENT.

transferManifest

object (TransferManifest)

File manifes menyediakan daftar objek yang akan ditransfer dari sumber data. Kolom ini mengarah ke lokasi file manifes. Jika tidak, seluruh bucket sumber akan digunakan. ObjectConditions tetap berlaku.

sourceAgentPoolName

string

Menentukan nama kumpulan agen yang terkait dengan sumber data posix. Jika tidak ditentukan, nama default akan digunakan.

sinkAgentPoolName

string

Menentukan nama kumpulan agen yang terkait dengan sink data posix. Jika tidak ditentukan, nama default akan digunakan.

Kolom union data_sink. Sink tulis untuk data. data_sink hanya ada berupa salah satu diantara berikut:
gcsDataSink

object (GcsData)

Penampung data Cloud Storage.

posixDataSink

object (PosixFilesystem)

Penampung data Sistem File POSIX.

Kolom union data_source. Sumber baca data. data_source hanya ada berupa salah satu diantara berikut:
gcsDataSource

object (GcsData)

Sumber data Cloud Storage.

awsS3DataSource

object (AwsS3Data)

Sumber data AWS S3.

httpDataSource

object (HttpData)

Sumber data URL HTTP.

posixDataSource

object (PosixFilesystem)

Sumber data Filesystem POSIX.

azureBlobStorageDataSource

object (AzureBlobStorageData)

Sumber data Azure Blob Storage.

awsS3CompatibleDataSource

object (AwsS3CompatibleData)

Sumber data yang kompatibel dengan AWS S3.

hdfsDataSource

object (HdfsData)

Sumber data cluster HDFS.

Kolom union intermediate_data_location.

intermediate_data_location hanya dapat berupa salah satu dari hal berikut:

gcsIntermediateDataLocation

object (GcsData)

Untuk transfer antar-sistem file, menentukan bucket Cloud Storage yang akan digunakan sebagai lokasi perantara untuk mentransfer data.

Lihat Mentransfer data antar-sistem file untuk mengetahui informasi selengkapnya.

PosixFilesystem

Resource sistem file POSIX.

Representasi JSON
{
  "rootDirectory": string
}
Kolom
rootDirectory

string

Jalur direktori root ke sistem file.

AwsS3Data

Resource AwsS3Data dapat berupa sumber data, tetapi bukan sink data. Dalam resource AwsS3Data, nama objek adalah nama kunci objek S3.

Representasi 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.
}
Kolom
bucketName

string

Wajib. Nama Bucket S3 (lihat Membuat bucket).

awsAccessKey

object (AwsAccessKey)

Hanya input. Kunci akses AWS yang digunakan untuk menandatangani permintaan API ke bucket AWS S3. Izin di bucket harus diberikan ke ID akses kunci akses AWS.

Untuk informasi tentang kebijakan retensi data kami untuk kredensial pengguna, lihat Kredensial pengguna.

path

string

Jalur root untuk mentransfer objek.

Harus berupa string kosong atau nama jalur lengkap yang diakhiri dengan '/'. Kolom ini diperlakukan sebagai awalan objek. Dengan demikian, umumnya tidak boleh diawali dengan '/'.

roleArn

string

Amazon Resource Name (ARN) peran untuk mendukung kredensial sementara melalui AssumeRoleWithWebIdentity. Untuk informasi selengkapnya tentang ARN, lihat ARN IAM.

Jika ARN peran diberikan, Layanan Transfer akan mengambil kredensial sementara untuk sesi menggunakan panggilan AssumeRoleWithWebIdentity untuk peran yang diberikan menggunakan GoogleServiceAccount untuk project ini.

cloudfrontDomain

string

Opsional. Nama domain distribusi CloudFront yang mengarah ke bucket ini, untuk digunakan saat mengambil.

Lihat Mentransfer dari S3 melalui CloudFront untuk mengetahui informasi selengkapnya.

Format: https://{id}.cloudfront.net atau domain kustom yang valid. Harus diawali dengan https://.

credentialsSecret

string

Opsional. Nama Resource secret di Secret Manager.

Kredensial AWS harus disimpan di Secret Manager dalam format JSON:

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

GoogleServiceAccount harus diberi roles/secretmanager.secretAccessor untuk resource.

Lihat Mengonfigurasi akses ke sumber: Amazon S3 untuk informasi selengkapnya.

Jika credentialsSecret ditentukan, jangan tentukan roleArn atau awsAccessKey.

Format: projects/{projectNumber}/secrets/{secret_name}

Kolom union private_network.

private_network hanya dapat berupa salah satu dari hal berikut:

managedPrivateNetwork

boolean

Byte keluar melalui jaringan pribadi yang dikelola Google. Jaringan ini dibagikan kepada pengguna Storage Transfer Service lainnya.

AwsAccessKey

Kunci akses AWS (lihat Kredensial Keamanan AWS).

Untuk informasi tentang kebijakan retensi data kami untuk kredensial pengguna, lihat Kredensial pengguna.

Representasi JSON
{
  "accessKeyId": string,
  "secretAccessKey": string
}
Kolom
accessKeyId

string

Wajib. ID kunci akses AWS.

secretAccessKey

string

Wajib. Kunci akses rahasia AWS. Kolom ini tidak ditampilkan dalam respons RPC.

HttpData

Resource HttpData menentukan daftar objek di web yang akan ditransfer melalui HTTP. Informasi objek yang akan ditransfer terdapat dalam file yang dirujuk oleh URL. Baris pertama dalam file harus berupa "TsvHttpData-1.0", yang menentukan format file. Baris berikutnya menentukan informasi daftar objek, satu objek per entri daftar. Setiap entri memiliki kolom yang dipisahkan tab berikut:

  • URL HTTP — Lokasi objek.

  • Panjang — Ukuran objek dalam byte.

  • MD5 — Hash MD5 objek yang dienkode base64.

Untuk contoh file TSV yang valid, lihat Mentransfer data dari URL.

Saat mentransfer data berdasarkan daftar URL, perhatikan hal-hal berikut:

  • Saat objek yang berada di http(s)://hostname:port/<URL-path> ditransfer ke sink data, nama objek di sink data adalah <hostname>/<URL-path>.

  • Jika ukuran objek yang ditentukan tidak cocok dengan ukuran sebenarnya dari objek yang diambil, objek tidak akan ditransfer.

  • Jika MD5 yang ditentukan tidak cocok dengan MD5 yang dihitung dari byte yang ditransfer, transfer objek akan gagal.

  • Pastikan setiap URL yang Anda tentukan dapat diakses secara publik. Misalnya, di Cloud Storage, Anda dapat membagikan objek secara publik dan mendapatkan link ke objek tersebut.

  • Layanan Transfer Penyimpanan mematuhi aturan robots.txt dan mewajibkan server HTTP sumber untuk mendukung permintaan Range dan menampilkan header Content-Length dalam setiap respons.

  • ObjectConditions tidak berpengaruh saat memfilter objek yang akan ditransfer.

Representasi JSON
{
  "listUrl": string
}
Kolom
listUrl

string

Wajib. URL yang mengarah ke file yang menyimpan entri daftar objek. File ini harus mengizinkan akses publik. Saat ini, hanya URL dengan skema HTTP dan HTTPS yang didukung.

AzureBlobStorageData

Resource AzureBlobStorageData dapat berupa sumber data, tetapi bukan sink data. Resource AzureBlobStorageData mewakili satu penampung Azure. Akun penyimpanan menentukan endpoint Azure. Dalam resource AzureBlobStorageData, nama blob adalah nama kunci blob Azure Blob Storage.

Representasi JSON
{
  "storageAccount": string,
  "azureCredentials": {
    object (AzureCredentials)
  },
  "container": string,
  "path": string,
  "credentialsSecret": string
}
Kolom
storageAccount

string

Wajib. Nama akun Azure Storage.

azureCredentials

object (AzureCredentials)

Wajib. Hanya input. Kredensial yang digunakan untuk mengautentikasi permintaan API ke Azure.

Untuk informasi tentang kebijakan retensi data kami untuk kredensial pengguna, lihat Kredensial pengguna.

container

string

Wajib. Penampung yang akan ditransfer dari akun Azure Storage.

path

string

Jalur root untuk mentransfer objek.

Harus berupa string kosong atau nama jalur lengkap yang diakhiri dengan '/'. Kolom ini diperlakukan sebagai awalan objek. Dengan demikian, umumnya tidak boleh diawali dengan '/'.

credentialsSecret

string

Opsional. Nama Resource secret di Secret Manager.

Token Azure SAS harus disimpan di Secret Manager dalam format JSON:

{ "sasToken" : "SAS_TOKEN" }

GoogleServiceAccount harus diberi roles/secretmanager.secretAccessor untuk resource.

Lihat Mengonfigurasi akses ke sumber: Microsoft Azure Blob Storage untuk mengetahui informasi selengkapnya.

Jika credentialsSecret ditentukan, jangan tentukan azureCredentials.

Format: projects/{projectNumber}/secrets/{secret_name}

AzureCredentials

Kredensial Azure

Untuk informasi tentang kebijakan retensi data kami untuk kredensial pengguna, lihat Kredensial pengguna.

Representasi JSON
{
  "sasToken": string
}
Kolom
sasToken

string

Wajib. Tanda tangan akses bersama (SAS) Azure.

Untuk informasi selengkapnya tentang SAS, lihat Memberikan akses terbatas ke resource Azure Storage menggunakan tanda tangan akses bersama (SAS).

AwsS3CompatibleData

Resource AwsS3CompatibleData.

Representasi 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.
}
Kolom
bucketName

string

Wajib. Menentukan nama bucket.

path

string

Menentukan jalur root untuk mentransfer objek.

Harus berupa string kosong atau nama jalur lengkap yang diakhiri dengan '/'. Kolom ini diperlakukan sebagai awalan objek. Dengan demikian, umumnya tidak boleh diawali dengan '/'.

endpoint

string

Wajib. Menentukan endpoint layanan penyimpanan.

region

string

Menentukan region untuk menandatangani permintaan. Kolom ini dapat dibiarkan kosong jika permintaan harus ditandatangani dengan region kosong.

Kolom union data_provider. Menentukan metadata penyedia data yang kompatibel dengan S3. Setiap penyedia mungkin berisi beberapa atribut yang tidak berlaku untuk semua penyedia data yang kompatibel dengan S3. Jika tidak ditentukan, S3CompatibleMetadata akan digunakan secara default. data_provider hanya ada berupa salah satu diantara berikut:
s3Metadata

object (S3CompatibleMetadata)

Metadata yang kompatibel dengan S3.

S3CompatibleMetadata

S3CompatibleMetadata berisi kolom metadata yang berlaku untuk jenis dasar penyedia data yang kompatibel dengan S3.

Representasi JSON
{
  "authMethod": enum (AuthMethod),
  "requestModel": enum (RequestModel),
  "protocol": enum (NetworkProtocol),
  "listApi": enum (ListApi)
}
Kolom
authMethod

enum (AuthMethod)

Menentukan metode autentikasi dan otorisasi yang digunakan oleh layanan penyimpanan. Jika tidak ditentukan, Layanan Transfer akan mencoba menentukan metode autentikasi yang tepat untuk digunakan.

requestModel

enum (RequestModel)

Menentukan model permintaan API yang digunakan untuk memanggil layanan penyimpanan. Jika tidak ditentukan, nilai default RequestModel REQUEST_MODEL_VIRTUAL_HOSTED_STYLE akan digunakan.

protocol

enum (NetworkProtocol)

Menentukan protokol jaringan agen. Jika tidak ditentukan, nilai default NetworkProtocol NETWORK_PROTOCOL_HTTPS akan digunakan.

listApi

enum (ListApi)

Listing API yang akan digunakan untuk menemukan objek. Jika tidak ditentukan, Layanan Transfer akan mencoba menentukan API yang tepat untuk digunakan.

AuthMethod

Metode autentikasi dan otorisasi yang digunakan oleh layanan penyimpanan.

Enum
AUTH_METHOD_UNSPECIFIED AuthMethod tidak ditentukan.
AUTH_METHOD_AWS_SIGNATURE_V4 Permintaan autentikasi dengan AWS SigV4.
AUTH_METHOD_AWS_SIGNATURE_V2 Permintaan autentikasi dengan AWS SigV2.

RequestModel

Model permintaan API.

Enum
REQUEST_MODEL_UNSPECIFIED RequestModel tidak ditentukan.
REQUEST_MODEL_VIRTUAL_HOSTED_STYLE Melakukan permintaan menggunakan Gaya Virtual Hosted. Contoh: https://bucket-name.s3.region.amazonaws.com/key-name
REQUEST_MODEL_PATH_STYLE Melakukan permintaan menggunakan Gaya Jalur. Contoh: https://s3.region.amazonaws.com/bucket-name/key-name

NetworkProtocol

Protokol jaringan agen untuk mengakses layanan penyimpanan.

Enum
NETWORK_PROTOCOL_UNSPECIFIED NetworkProtocol tidak ditentukan.
NETWORK_PROTOCOL_HTTPS Lakukan permintaan menggunakan HTTPS.
NETWORK_PROTOCOL_HTTP Tidak direkomendasikan: Opsi ini mengirim data dalam cleartext. Hal ini hanya sesuai dalam jaringan tertutup atau untuk data yang tersedia secara publik. Melakukan permintaan menggunakan HTTP.

ListApi

Listing API yang akan digunakan untuk menemukan objek.

Enum
LIST_API_UNSPECIFIED ListApi tidak ditentukan.
LIST_OBJECTS_V2 Lakukan listingan menggunakan ListObjectsV2 API.
LIST_OBJECTS ListObjects API lama.

HdfsData

Resource HdfsData menentukan jalur dalam entity HDFS (misalnya, cluster). Semua setelan khusus cluster, seperti namenode dan port, dikonfigurasi pada agen transfer yang melayani permintaan, sehingga HdfsData hanya berisi jalur root ke data dalam transfer kami.

Representasi JSON
{
  "path": string
}
Kolom
path

string

Jalur root untuk mentransfer file.

TransferManifest

Menentukan lokasi manifes.

Representasi JSON
{
  "location": string
}
Kolom
location

string

Menentukan jalur ke manifes di Cloud Storage. Akun layanan yang dikelola Google untuk transfer harus memiliki izin storage.objects.get untuk objek ini. Contoh jalurnya adalah gs://bucketName/path/manifest.csv.