TransferSpec

Konfiguration für die Ausführung einer Übertragung.

JSON-Darstellung
{
  "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.
}
Felder
objectConditions

object (ObjectConditions)

Nur Objekte, die diese Objektbedingungen erfüllen, werden in die Datenquellen- und Datensinkobjekte aufgenommen. Objektbedingungen, die auf dem „Datum der letzten Änderung“ von Objekten basieren, schließen Objekte in einer Datensenke nicht aus.

transferOptions

object (TransferOptions)

Wenn die Option deleteObjectsUniqueInSink true ist und zeitbasierte Objektbedingungen wie „Zuletzt geändert am“ angegeben sind, schlägt die Anfrage mit dem Fehler INVALID_ARGUMENT fehl.

transferManifest

object (TransferManifest)

Eine Manifestdatei enthält eine Liste der Objekte, die aus der Datenquelle übertragen werden sollen. Dieses Feld verweist auf den Speicherort der Manifestdatei. Andernfalls wird der gesamte Quell-Bucket verwendet. ObjectConditions gelten weiterhin.

sourceAgentPoolName

string

Gibt den Namen des Agent-Pools an, der mit der POSIX-Datenquelle verknüpft ist. Wenn keine Angabe gemacht wird, wird der Standardname verwendet.

sinkAgentPoolName

string

Gibt den Namen des Agent-Pools an, der mit dem POSIX-Daten-Sink verknüpft ist. Wenn keine Angabe gemacht wird, wird der Standardname verwendet.

Union-Feld data_sink. Die Schreibsenke für die Daten. Für data_sink ist nur einer der folgenden Werte zulässig:
gcsDataSink

object (GcsData)

Ein Cloud Storage-Datensink.

posixDataSink

object (PosixFilesystem)

Ein POSIX-Dateisystem-Datensink.

Union-Feld data_source. Die Lesequelle der Daten. Für data_source ist nur einer der folgenden Werte zulässig:
gcsDataSource

object (GcsData)

Eine Cloud Storage-Datenquelle.

awsS3DataSource

object (AwsS3Data)

Eine AWS S3-Datenquelle.

httpDataSource

object (HttpData)

Eine HTTP-URL-Datenquelle.

posixDataSource

object (PosixFilesystem)

Eine POSIX-Dateisystemdatenquelle.

azureBlobStorageDataSource

object (AzureBlobStorageData)

Eine Azure Blob Storage-Datenquelle.

awsS3CompatibleDataSource

object (AwsS3CompatibleData)

Eine mit AWS S3 kompatible Datenquelle.

hdfsDataSource

object (HdfsData)

Eine HDFS-Clusterdatenquelle.

Union-Feld intermediate_data_location.

Für intermediate_data_location ist nur einer der folgenden Werte zulässig:

gcsIntermediateDataLocation

object (GcsData)

Gibt für Übertragungen zwischen Dateisystemen einen Cloud Storage-Bucket an, der als Zwischenspeicher für die Datenübertragung verwendet werden soll.

Weitere Informationen finden Sie unter Daten zwischen Dateisystemen übertragen.

PosixFilesystem

Eine POSIX-Dateisystemressource.

JSON-Darstellung
{
  "rootDirectory": string
}
Felder
rootDirectory

string

Pfad zum Stammverzeichnis des Dateisystems.

AwsS3Data

Eine AwsS3Data-Ressource kann eine Datenquelle, aber kein Datensink sein. In einer AwsS3Data-Ressource ist der Name eines Objekts der Schlüsselname des S3-Objekts.

JSON-Darstellung
{
  "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.
}
Felder
bucketName

string

Pflichtangabe. Name des S3-Buckets (siehe Bucket erstellen).

awsAccessKey

object (AwsAccessKey)

Nur Eingabe. AWS-Zugriffsschlüssel, mit dem die API-Anfragen an den AWS S3-Bucket signiert werden. Berechtigungen für den Bucket müssen der Zugriffs-ID des AWS-Zugriffsschlüssels gewährt werden.

Informationen zu unseren Aufbewahrungsrichtlinien für Nutzeranmeldedaten finden Sie unter Nutzeranmeldedaten.

path

string

Stammpfad für die Übertragung von Objekten.

Muss ein leerer String oder ein vollständiger Pfadname sein, der auf „/“ endet. Dieses Feld wird als Objektpräfix behandelt. Daher sollte er in der Regel nicht mit einem Schrägstrich beginnen.

roleArn

string

Der Amazon Resource Name (ARN) der Rolle, die temporäre Anmeldedaten über AssumeRoleWithWebIdentity unterstützt. Weitere Informationen zu ARNs finden Sie unter IAM-ARNs.

Wenn eine ARN für eine Rolle angegeben wird, ruft der Übertragungsdienst mithilfe eines AssumeRoleWithWebIdentity-Aufrufs für die angegebene Rolle und der GoogleServiceAccount für dieses Projekt temporäre Anmeldedaten für die Sitzung ab.

cloudfrontDomain

string

Optional. Der Domainname der CloudFront-Distribution, der auf diesen Bucket verweist und beim Abrufen verwendet werden soll.

Weitere Informationen finden Sie unter Übertragung von S3 über CloudFront.

Format: https://{id}.cloudfront.net oder eine gültige benutzerdefinierte Domain. Muss mit https:// beginnen.

credentialsSecret

string

Optional. Der Ressourcenname eines Secrets in Secret Manager.

AWS-Anmeldedaten müssen im JSON-Format in Secrets Manager gespeichert werden:

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

GoogleServiceAccount muss roles/secretmanager.secretAccessor für die Ressource gewährt werden.

Weitere Informationen finden Sie unter Zugriff auf eine Quelle konfigurieren: Amazon S3.

Wenn credentialsSecret angegeben ist, geben Sie weder roleArn noch awsAccessKey an.

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

Union-Feld private_network.

Für private_network ist nur einer der folgenden Werte zulässig:

managedPrivateNetwork

boolean

Ausgehende Bytes über ein von Google verwaltetes privates Netzwerk. Dieses Netzwerk wird von anderen Nutzern des Storage Transfer Service gemeinsam genutzt.

AwsAccessKey

AWS-Zugriffsschlüssel (siehe AWS-Sicherheitsanmeldedaten).

Informationen zu unseren Aufbewahrungsrichtlinien für Nutzeranmeldedaten finden Sie unter Nutzeranmeldedaten.

JSON-Darstellung
{
  "accessKeyId": string,
  "secretAccessKey": string
}
Felder
accessKeyId

string

Pflichtangabe. AWS-Zugriffsschlüssel-ID.

secretAccessKey

string

Pflichtangabe. Geheimer AWS-Zugriffsschlüssel Dieses Feld wird in RPC-Antworten nicht zurückgegeben.

HttpData

Eine HttpData-Ressource gibt eine Liste von Objekten im Web an, die über HTTP übertragen werden sollen. Die Informationen zu den zu übertragenden Objekten befinden sich in einer Datei, auf die eine URL verweist. Die erste Zeile der Datei muss "TsvHttpData-1.0" sein, was das Format der Datei angibt. In den nachfolgenden Zeilen werden die Informationen der Liste der Objekte angegeben, jeweils ein Objekt pro Listeneintrag. Jeder Eintrag enthält die folgenden tabulatorgetrennten Felder:

  • HTTP-URL: Der Speicherort des Objekts.

  • Length: Die Größe des Objekts in Byte.

  • MD5: Der base64-codierte MD5-Hash des Objekts.

Ein Beispiel für eine gültige TSV-Datei finden Sie unter Daten aus URLs übertragen.

Beachten Sie bei der Übertragung von Daten anhand einer URL-Liste Folgendes:

  • Wenn ein Objekt unter http(s)://hostname:port/<URL-path> an einen Datensammler übertragen wird, lautet der Name des Objekts am Datensammler <hostname>/<URL-path>.

  • Wenn die angegebene Größe eines Objekts nicht mit der tatsächlichen Größe des abgerufenen Objekts übereinstimmt, wird das Objekt nicht übertragen.

  • Wenn die angegebene MD5-Prüfsumme nicht mit der aus den übertragenen Byte berechneten MD5-Prüfsumme übereinstimmt, schlägt die Objektübertragung fehl.

  • Jede angegebene URL ist öffentlich zugänglich. In Cloud Storage können Sie beispielsweise ein Objekt öffentlich freigeben und erhalten dafür einen Link.

  • Der Storage Transfer Service befolgt die robots.txt-Regeln und erfordert, dass der Quell-HTTP-Server Range-Anfragen unterstützt und in jeder Antwort einen Content-Length-Header zurückgibt.

  • ObjectConditions haben keine Auswirkungen beim Filtern von Objekten, die übertragen werden sollen.

JSON-Darstellung
{
  "listUrl": string
}
Felder
listUrl

string

Pflichtangabe. Die URL, die auf die Datei verweist, in der die Einträge der Objektliste gespeichert sind. Für diese Datei muss der öffentliche Zugriff zugelassen sein. Derzeit werden nur URLs mit HTTP- und HTTPS-Schemas unterstützt.

AzureBlobStorageData

Eine AzureBlobStorageData-Ressource kann eine Datenquelle, aber kein Datensink sein. Eine AzureBlobStorageData-Ressource stellt einen Azure-Container dar. Das Speicherkonto bestimmt den Azure-Endpunkt. In einer AzureBlobStorageData-Ressource ist der Name eines Blobs der Schlüsselname des Azure Blob Storage-Blobs.

JSON-Darstellung
{
  "storageAccount": string,
  "azureCredentials": {
    object (AzureCredentials)
  },
  "container": string,
  "path": string,
  "credentialsSecret": string
}
Felder
storageAccount

string

Pflichtangabe. Der Name des Azure-Speicherkontos.

azureCredentials

object (AzureCredentials)

Pflichtangabe. Nur Eingabe. Anmeldedaten, die zum Authentifizieren von API-Anfragen an Azure verwendet werden.

Informationen zu unseren Aufbewahrungsrichtlinien für Nutzeranmeldedaten finden Sie unter Nutzeranmeldedaten.

container

string

Pflichtangabe. Der Container, der aus dem Azure Storage-Konto übertragen werden soll.

path

string

Stammpfad für die Übertragung von Objekten.

Muss ein leerer String oder ein vollständiger Pfadname sein, der auf „/“ endet. Dieses Feld wird als Objektpräfix behandelt. Daher sollte er in der Regel nicht mit einem Schrägstrich beginnen.

credentialsSecret

string

Optional. Der Ressourcenname eines Secrets in Secret Manager.

Das Azure SAS-Token muss im JSON-Format in Secret Manager gespeichert werden:

{ "sasToken" : "SAS_TOKEN" }

GoogleServiceAccount muss roles/secretmanager.secretAccessor für die Ressource gewährt werden.

Weitere Informationen finden Sie unter Zugriff auf eine Quelle konfigurieren: Microsoft Azure Blob Storage.

Wenn credentialsSecret angegeben ist, geben Sie azureCredentials nicht an.

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

AzureCredentials

Azure-Anmeldedaten

Informationen zu unseren Aufbewahrungsrichtlinien für Nutzeranmeldedaten finden Sie unter Nutzeranmeldedaten.

JSON-Darstellung
{
  "sasToken": string
}
Felder
sasToken

string

Pflichtangabe. Azure Shared Access Signature (SAS)

Weitere Informationen zu SAS finden Sie unter Zugriff auf Azure Storage-Ressourcen mit freigegebenen Zugriffssignaturen (SAS) gewähren.

AwsS3CompatibleData

Eine AwsS3CompatibleData-Ressource.

JSON-Darstellung
{
  "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.
}
Felder
bucketName

string

Pflichtangabe. Gibt den Namen des Buckets an.

path

string

Gibt den Stammpfad für die Übertragung von Objekten an.

Muss ein leerer String oder ein vollständiger Pfadname sein, der auf „/“ endet. Dieses Feld wird als Objektpräfix behandelt. Daher sollte er in der Regel nicht mit einem Schrägstrich beginnen.

endpoint

string

Pflichtangabe. Gibt den Endpunkt des Speicherdienstes an.

region

string

Gibt die Region an, mit der Anfragen signiert werden sollen. Dieses Feld kann leer bleiben, wenn Anfragen mit einer leeren Region signiert werden sollen.

Union-Feld data_provider. Gibt die Metadaten des S3-kompatiblen Datenanbieters an. Jeder Anbieter kann einige Attribute enthalten, die nicht für alle S3-kompatiblen Datenanbieter gelten. Wenn keine Angabe erfolgt, wird standardmäßig „S3CompatibleMetadata“ verwendet. Für data_provider ist nur einer der folgenden Werte zulässig:
s3Metadata

object (S3CompatibleMetadata)

S3-kompatible Metadaten

S3CompatibleMetadata

„S3CompatibleMetadata“ enthält die Metadatenfelder, die für die grundlegenden Typen von S3-kompatiblen Datenanbietern gelten.

JSON-Darstellung
{
  "authMethod": enum (AuthMethod),
  "requestModel": enum (RequestModel),
  "protocol": enum (NetworkProtocol),
  "listApi": enum (ListApi)
}
Felder
authMethod

enum (AuthMethod)

Gibt die Authentifizierungs- und Autorisierungsmethode an, die vom Speicherdienst verwendet wird. Wenn keine angegeben ist, versucht der Übertragungsdienst, die richtige Authentifizierungsmethode zu ermitteln.

requestModel

enum (RequestModel)

Gibt das API-Anfragemodell an, das zum Aufrufen des Speicherdiensts verwendet wird. Wenn keine Angabe erfolgt, wird der Standardwert von RequestModel REQUEST_MODEL_VIRTUAL_HOSTED_STYLE verwendet.

protocol

enum (NetworkProtocol)

Gibt das Netzwerkprotokoll des Agents an. Wenn keine Angabe erfolgt, wird der Standardwert „NETWORK_PROTOCOL_HTTPS“ verwendet.

listApi

enum (ListApi)

Die Listing API, die zum Entdecken von Objekten verwendet werden soll. Wenn nicht angegeben, versucht der Übertragungsdienst, die richtige API zu ermitteln.

AuthMethod

Die vom Speicherdienst verwendete Authentifizierungs- und Autorisierungsmethode.

Enums
AUTH_METHOD_UNSPECIFIED AuthMethod ist nicht angegeben.
AUTH_METHOD_AWS_SIGNATURE_V4 Authentifizierungsanfragen mit AWS SigV4
AUTH_METHOD_AWS_SIGNATURE_V2 Authentifizierungsanfragen mit AWS SigV2

RequestModel

Das Anfragemodell der API.

Enums
REQUEST_MODEL_UNSPECIFIED RequestModel ist nicht angegeben.
REQUEST_MODEL_VIRTUAL_HOSTED_STYLE Führe Anfragen im virtuellen Host-Stil aus. Beispiel: https://bucket-name.s3.region.amazonaws.com/key-name
REQUEST_MODEL_PATH_STYLE Führe Anfragen im Pfadstil aus. Beispiel: https://s3.region.amazonaws.com/bucket-name/key-name

NetworkProtocol

Das Netzwerkprotokoll des Agents für den Zugriff auf den Speicherdienst.

Enums
NETWORK_PROTOCOL_UNSPECIFIED NetworkProtocol ist nicht angegeben.
NETWORK_PROTOCOL_HTTPS Führe Anfragen über HTTPS aus.
NETWORK_PROTOCOL_HTTP Nicht empfohlen: Dabei werden Daten im Klartext gesendet. Dies ist nur in einem geschlossenen Netzwerk oder für öffentlich verfügbare Daten geeignet. Anfragen über HTTP ausführen.

ListApi

Die Listing API, die zum Entdecken von Objekten verwendet werden soll.

Enums
LIST_API_UNSPECIFIED ListApi ist nicht angegeben.
LIST_OBJECTS_V2 Führen Sie die Auflistung mit der ListObjectsV2 API durch.
LIST_OBJECTS Die alte ListObjects API.

HdfsData

Eine HdfsData-Ressource gibt einen Pfad innerhalb einer HDFS-Entität (z.B. eines Clusters) an. Alle clusterspezifischen Einstellungen wie Namenode und Ports werden auf den Übertragungsagenten konfiguriert, die Anfragen bearbeiten. Daher enthält HdfsData nur den Stammpfad zu den Daten in der Übertragung.

JSON-Darstellung
{
  "path": string
}
Felder
path

string

Stammpfad für die Dateiübertragung.

TransferManifest

Gibt an, wo sich das Manifest befindet.

JSON-Darstellung
{
  "location": string
}
Felder
location

string

Gibt den Pfad zum Manifest in Cloud Storage an. Das von Google verwaltete Dienstkonto für die Übertragung muss die Berechtigung storage.objects.get für dieses Objekt haben. Ein Beispiel für einen Pfad ist gs://bucketName/path/manifest.csv.