TransferSpec

Configurazione per l'esecuzione di un trasferimento.

Rappresentazione 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.
}
Campi
objectConditions

object (ObjectConditions)

Solo gli oggetti che soddisfano queste condizioni sono inclusi nell'insieme di oggetti di origine dati e destinazione dati. Le condizioni degli oggetti basate sulla "data dell'ultima modifica" degli oggetti non escludono gli oggetti in un'area di destinazione dati.

transferOptions

object (TransferOptions)

Se l'opzione deleteObjectsUniqueInSink è true e sono specificate condizioni degli oggetti basate sul tempo come "data dell'ultima modifica", la richiesta non va a buon fine con un errore INVALID_ARGUMENT.

transferManifest

object (TransferManifest)

Un file manifest fornisce un elenco di oggetti da trasferire dall'origine dati. Questo campo indica la posizione del file manifest. In caso contrario, viene utilizzato l'intero bucket di origine. Si applicano comunque le condizioni ObjectConditions.

sourceAgentPoolName

string

Specifica il nome del pool di agenti associato all'origine dati POSIX. Se non specificato, viene utilizzato il nome predefinito.

sinkAgentPoolName

string

Specifica il nome del pool di agenti associato all'emissario di dati posix. Se non specificato, viene utilizzato il nome predefinito.

Campo unione data_sink. Il sink di scrittura per i dati. data_sink può essere solo uno dei seguenti:
gcsDataSink

object (GcsData)

Un'area di destinazione dei dati Cloud Storage.

posixDataSink

object (PosixFilesystem)

Un'area di destinazione dei dati del file system POSIX.

Campo unione data_source. L'origine di lettura dei dati. data_source può essere solo uno dei seguenti:
gcsDataSource

object (GcsData)

Un'origine dati Cloud Storage.

awsS3DataSource

object (AwsS3Data)

Un'origine dati AWS S3.

httpDataSource

object (HttpData)

Un'origine dati URL HTTP.

posixDataSource

object (PosixFilesystem)

Un'origine dati del file system POSIX.

azureBlobStorageDataSource

object (AzureBlobStorageData)

Un'origine dati Azure Blob Storage.

awsS3CompatibleDataSource

object (AwsS3CompatibleData)

Un'origine dati compatibile con AWS S3.

hdfsDataSource

object (HdfsData)

Un'origine dati del cluster HDFS.

Campo unione intermediate_data_location.

intermediate_data_location può essere solo uno dei seguenti:

gcsIntermediateDataLocation

object (GcsData)

Per i trasferimenti tra file system, specifica un bucket Cloud Storage da utilizzare come posizione intermedia attraverso la quale trasferire i dati.

Per ulteriori informazioni, vedi Trasferire dati tra file system.

PosixFilesystem

Una risorsa del file system POSIX.

Rappresentazione JSON
{
  "rootDirectory": string
}
Campi
rootDirectory

string

Percorso della directory principale del file system.

AwsS3Data

Una risorsa AwsS3Data può essere un'origine dati, ma non un'area di destinazione dei dati. In una risorsa AwsS3Data, il nome di un oggetto è il nome della chiave dell'oggetto S3.

Rappresentazione 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.
}
Campi
bucketName

string

Obbligatorio. Nome del bucket S3 (vedi Creare un bucket).

awsAccessKey

object (AwsAccessKey)

Solo input. Chiave di accesso AWS utilizzata per firmare le richieste API al bucket AWS S3. Le autorizzazioni per il bucket devono essere concesse all'ID di accesso della chiave di accesso AWS.

Per informazioni sulle nostre norme di conservazione dei dati per le credenziali utente, consulta Credenziali utente.

path

string

Percorso principale per il trasferimento degli oggetti.

Deve essere una stringa vuota o un nome di percorso completo che termina con "/". Questo campo viene trattato come un prefisso dell'oggetto. Di conseguenza, in genere non deve iniziare con una "/".

roleArn

string

Il nome della risorsa Amazon (ARN) del ruolo per supportare le credenziali temporanee tramite AssumeRoleWithWebIdentity. Per ulteriori informazioni sugli ARN, consulta ARN IAM.

Quando viene fornito un ARN ruolo, Transfer Service recupera le credenziali temporanee per la sessione utilizzando una chiamata AssumeRoleWithWebIdentity per il ruolo fornito utilizzando il GoogleServiceAccount per questo progetto.

cloudfrontDomain

string

Facoltativo. Il nome di dominio della distribuzione CloudFront che rimanda a questo bucket, da utilizzare durante il recupero.

Per ulteriori informazioni, consulta Trasferire da S3 tramite CloudFront.

Formato: https://{id}.cloudfront.net o qualsiasi dominio personalizzato valido. Deve iniziare con https://.

credentialsSecret

string

Facoltativo. Il nome della risorsa di un secret in Secret Manager.

Le credenziali AWS devono essere archiviate in Secret Manager in formato JSON:

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

A GoogleServiceAccount deve essere concesso roles/secretmanager.secretAccessor per la risorsa.

Per ulteriori informazioni, consulta Configurare l'accesso a un'origine: Amazon S3.

Se è specificato credentialsSecret, non specificare roleArn o awsAccessKey.

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

Campo unione private_network.

private_network può essere solo uno dei seguenti:

managedPrivateNetwork

boolean

Byte in uscita su una rete privata gestita da Google. Questa rete è condivisa tra altri utenti di Storage Transfer Service.

AwsAccessKey

Chiave di accesso AWS (vedi Credenziali di sicurezza AWS).

Per informazioni sulle nostre norme di conservazione dei dati per le credenziali utente, consulta Credenziali utente.

Rappresentazione JSON
{
  "accessKeyId": string,
  "secretAccessKey": string
}
Campi
accessKeyId

string

Obbligatorio. ID chiave di accesso AWS.

secretAccessKey

string

Obbligatorio. Chiave di accesso segreta AWS. Questo campo non viene restituito nelle risposte RPC.

HttpData

Una risorsa HttpData specifica un elenco di oggetti sul web da trasferire tramite HTTP. Le informazioni sugli oggetti da trasferire sono contenute in un file a cui fa riferimento un URL. La prima riga del file deve essere "TsvHttpData-1.0", che specifica il formato del file. Le righe successive specificano le informazioni dell'elenco di oggetti, un oggetto per voce dell'elenco. Ogni voce contiene i seguenti campi delimitati da tabulazione:

  • URL HTTP: la posizione dell'oggetto.

  • Lunghezza: le dimensioni dell'oggetto in byte.

  • MD5: l'hash MD5 dell'oggetto codificato in base64.

Per un esempio di file TSV valido, consulta Trasferire i dati da URL.

Quando trasferisci i dati in base a un elenco di URL, tieni presente quanto segue:

  • Quando un oggetto situato in http(s)://hostname:port/<URL-path> viene trasferito a un'area di destinazione dei dati, il nome dell'oggetto nell'area di destinazione dei dati è <hostname>/<URL-path>.

  • Se le dimensioni specificate di un oggetto non corrispondono alle dimensioni effettive dell'oggetto recuperato, l'oggetto non viene trasferito.

  • Se l'MD5 specificato non corrisponde all'MD5 calcolato dai byte trasferiti, il trasferimento dell'oggetto non va a buon fine.

  • Assicurati che ogni URL specificato sia accessibile pubblicamente. Ad esempio, in Cloud Storage puoi condividere un oggetto pubblicamente e ottenere un link.

  • Storage Transfer Service rispetta le regole robots.txt e richiede che il server HTTP di origine supporti le richieste Range e restituisca un'intestazione Content-Length in ogni risposta.

  • ObjectConditions non hanno alcun effetto sul filtro degli oggetti da trasferire.

Rappresentazione JSON
{
  "listUrl": string
}
Campi
listUrl

string

Obbligatorio. L'URL che rimanda al file in cui sono archiviate le voci dell'elenco di oggetti. Questo file deve consentire l'accesso pubblico. Al momento sono supportati solo gli URL con schemi HTTP e HTTPS.

AzureBlobStorageData

Una risorsa AzureBlobStorageData può essere un'origine dati, ma non un'area di destinazione dei dati. Una risorsa AzureBlobStorageData rappresenta un contenitore Azure. L'account di archiviazione determina l'endpoint Azure. In una risorsa AzureBlobStorageData, il nome di un blob è il nome della chiave del blob di Azure Blob Storage.

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

string

Obbligatorio. Il nome dell'account Azure Storage.

azureCredentials

object (AzureCredentials)

Obbligatorio. Solo input. Credenziali utilizzate per autenticare le richieste API ad Azure.

Per informazioni sulle nostre norme di conservazione dei dati per le credenziali utente, consulta Credenziali utente.

container

string

Obbligatorio. Il contenitore da trasferire dall'account di archiviazione Azure.

path

string

Percorso principale per il trasferimento degli oggetti.

Deve essere una stringa vuota o un nome di percorso completo che termina con "/". Questo campo viene trattato come un prefisso dell'oggetto. Di conseguenza, in genere non deve iniziare con una "/".

credentialsSecret

string

Facoltativo. Il nome della risorsa di un secret in Secret Manager.

Il token SAS di Azure deve essere archiviato in Secret Manager in formato JSON:

{ "sasToken" : "SAS_TOKEN" }

A GoogleServiceAccount deve essere concesso roles/secretmanager.secretAccessor per la risorsa.

Per ulteriori informazioni, consulta Configurare l'accesso a un'origine: Microsoft Azure Blob Storage.

Se è specificato credentialsSecret, non specificare azureCredentials.

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

AzureCredentials

Credenziali Azure

Per informazioni sulle nostre norme di conservazione dei dati per le credenziali utente, consulta Credenziali utente.

Rappresentazione JSON
{
  "sasToken": string
}
Campi
sasToken

string

Obbligatorio. Firma di accesso condiviso (SAS) di Azure.

Per ulteriori informazioni sulle firme di accesso condiviso, vedi Concedere l'accesso limitato alle risorse di Azure Storage utilizzando le firme di accesso condiviso (SAS).

AwsS3CompatibleData

Una risorsa AwsS3CompatibleData.

Rappresentazione 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.
}
Campi
bucketName

string

Obbligatorio. Specifica il nome del bucket.

path

string

Specifica il percorso principale per il trasferimento degli oggetti.

Deve essere una stringa vuota o un nome di percorso completo che termina con "/". Questo campo viene trattato come un prefisso dell'oggetto. Di conseguenza, in genere non deve iniziare con una "/".

endpoint

string

Obbligatorio. Specifica l'endpoint del servizio di archiviazione.

region

string

Specifica la regione con cui firmare le richieste. Questo campo può essere lasciato vuoto se le richieste devono essere firmate con una regione vuota.

Campo unione data_provider. Specifica i metadati del fornitore di dati compatibile con S3. Ogni provider potrebbe contenere alcuni attributi che non si applicano a tutti i provider di dati compatibili con S3. Se non specificato, per impostazione predefinita viene utilizzato S3CompatibleMetadata. data_provider può essere solo uno dei seguenti:
s3Metadata

object (S3CompatibleMetadata)

Metadati compatibili con S3.

S3CompatibleMetadata

S3CompatibleMetadata contiene i campi dei metadati che si applicano ai tipi di base di provider di dati compatibili con S3.

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

enum (AuthMethod)

Specifica il metodo di autenticazione e autorizzazione utilizzato dal servizio di archiviazione. Se non specificato, il servizio di trasferimento tenterà di determinare il metodo di autenticazione corretto da utilizzare.

requestModel

enum (RequestModel)

Specifica il modello di richiesta API utilizzato per chiamare il servizio di archiviazione. Se non specificato, viene utilizzato il valore predefinito di RequestModel REQUEST_MODEL_VIRTUAL_HOSTED_STYLE.

protocol

enum (NetworkProtocol)

Specifica il protocollo di rete dell'agente. Se non specificato, viene utilizzato il valore predefinito di NetworkProtocol NETWORK_PROTOCOL_HTTPS.

listApi

enum (ListApi)

L'API Listing da utilizzare per scoprire gli oggetti. Se non specificato, il servizio di trasferimento tenterà di determinare l'API corretta da utilizzare.

AuthMethod

Il metodo di autenticazione e autorizzazione utilizzato dal servizio di archiviazione.

Enum
AUTH_METHOD_UNSPECIFIED AuthMethod non è specificato.
AUTH_METHOD_AWS_SIGNATURE_V4 Richieste di autenticazione con AWS SigV4.
AUTH_METHOD_AWS_SIGNATURE_V2 Richieste di autenticazione con la versione 2 della firma di AWS.

RequestModel

Il modello di richiesta dell'API.

Enum
REQUEST_MODEL_UNSPECIFIED RequestModel non è specificato.
REQUEST_MODEL_VIRTUAL_HOSTED_STYLE Esegui le richieste utilizzando lo stile con hosting virtuale. Esempio: https://bucket-name.s3.region.amazonaws.com/key-name
REQUEST_MODEL_PATH_STYLE Esegui le richieste utilizzando lo stile percorso. Esempio: https://s3.region.amazonaws.com/bucket-name/key-name

NetworkProtocol

Il protocollo di rete dell'agente per accedere al servizio di archiviazione.

Enum
NETWORK_PROTOCOL_UNSPECIFIED NetworkProtocol non è specificato.
NETWORK_PROTOCOL_HTTPS Esegui le richieste utilizzando HTTPS.
NETWORK_PROTOCOL_HTTP Non consigliato: i dati vengono inviati in testo normale. Questo metodo è appropriato solo all'interno di una rete chiusa o per i dati disponibili pubblicamente. Esegui richieste utilizzando HTTP.

ListApi

L'API Listing da utilizzare per scoprire gli oggetti.

Enum
LIST_API_UNSPECIFIED ListApi non è specificato.
LIST_OBJECTS_V2 Esegui la scheda utilizzando l'API ListObjectsV2.
LIST_OBJECTS API ListObjects precedente.

HdfsData

Una risorsa HdfsData specifica un percorso all'interno di un'entità HDFS (ad es. un cluster). Tutte le impostazioni specifiche del cluster, come i namenode e le porte, sono configurate sugli agenti di trasferimento che gestiscono le richieste, pertanto HdfsData contiene solo il percorso principale dei dati nel nostro trasferimento.

Rappresentazione JSON
{
  "path": string
}
Campi
path

string

Percorso principale per il trasferimento dei file.

TransferManifest

Specifica la posizione del file manifest.

Rappresentazione JSON
{
  "location": string
}
Campi
location

string

Specifica il percorso del file manifest in Cloud Storage. L'account di servizio gestito da Google per il trasferimento deve disporre dell'autorizzazione storage.objects.get per questo oggetto. Un esempio di percorso è gs://bucketName/path/manifest.csv.