TransferSpec

Configuração para executar uma transferência.

Representação 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.
}
Campos
objectConditions

object (ObjectConditions)

Somente os objetos que atendem a essas condições são incluídos no conjunto de objetos de origem e coletor de dados. As condições de objetos com base na "última modificação" não excluem objetos em um coletor de dados.

transferOptions

object (TransferOptions)

Se a opção deleteObjectsUniqueInSink for true e condições de objeto baseadas em tempo, como "hora da última modificação", forem especificadas, a solicitação falhará com um erro INVALID_ARGUMENT.

transferManifest

object (TransferManifest)

Um arquivo de manifesto fornece uma lista de objetos a serem transferidos da fonte de dados. Esse campo aponta para o local do arquivo de manifesto. Caso contrário, o bucket de origem inteiro será usado. A ObjectConditions ainda se aplica.

sourceAgentPoolName

string

Especifica o nome do pool de agentes associado à fonte de dados posix. Se não for especificado, o nome padrão será usado.

sinkAgentPoolName

string

Especifica o nome do pool de agentes associado ao coletor de dados posix. Se não for especificado, o nome padrão será usado.

Campo de união data_sink. O coletor de gravação dos dados. data_sink pode ser apenas de um dos tipos a seguir:
gcsDataSink

object (GcsData)

Um destino de dados do Cloud Storage.

posixDataSink

object (PosixFilesystem)

Um destino de dados do sistema de arquivos POSIX.

Campo de união data_source. A origem de leitura dos dados. data_source pode ser apenas de um dos tipos a seguir:
gcsDataSource

object (GcsData)

Uma origem de dados do Cloud Storage.

awsS3DataSource

object (AwsS3Data)

Uma origem de dados do AWS S3.

httpDataSource

object (HttpData)

Uma origem de dados de URL HTTP.

posixDataSource

object (PosixFilesystem)

Uma origem de dados do sistema de arquivos POSIX.

azureBlobStorageDataSource

object (AzureBlobStorageData)

Uma fonte de dados do Armazenamento de blobs do Azure.

awsS3CompatibleDataSource

object (AwsS3CompatibleData)

Uma origem de dados compatível com o AWS S3.

hdfsDataSource

object (HdfsData)

Uma fonte de dados de cluster do HDFS.

Campo de união intermediate_data_location.

intermediate_data_location pode ser apenas de um dos tipos a seguir:

gcsIntermediateDataLocation

object (GcsData)

Para transferências entre sistemas de arquivos, especifica um bucket do Cloud Storage para ser usado como um local intermediário para transferir dados.

Consulte Transferir dados entre sistemas de arquivos para mais informações.

PosixFilesystem

Um recurso de sistema de arquivos POSIX.

Representação JSON
{
  "rootDirectory": string
}
Campos
rootDirectory

string

Caminho do diretório raiz para o sistema de arquivos.

AwsS3Data

Um recurso AwsS3Data pode ser uma fonte de dados, mas não um destino de dados. Em um recurso AwsS3Data, o nome de um objeto é o nome da chave do objeto S3.

Representação 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.
}
Campos
bucketName

string

Obrigatório. Nome do bucket do S3 (consulte Criar um bucket).

awsAccessKey

object (AwsAccessKey)

Somente entrada. Chave de acesso da AWS usada para assinar as solicitações de API para o bucket do S3 da AWS. As permissões no bucket precisam ser concedidas ao ID de acesso da chave de acesso da AWS.

Para informações sobre nossa política de retenção de dados de credenciais do usuário, consulte Credenciais do usuário.

path

string

Caminho raiz para transferir objetos.

Precisa ser uma string vazia ou um nome de caminho completo que termine com um "/". Esse campo é tratado como um prefixo de objeto. Por isso, geralmente não deve começar com um "/".

roleArn

string

O nome do recurso da Amazon (ARN) do papel para oferecer suporte a credenciais temporárias por AssumeRoleWithWebIdentity. Para mais informações sobre ARNs, consulte ARNs do IAM.

Quando um ARN de função é fornecido, o Serviço de transferência busca credenciais temporárias para a sessão usando uma chamada AssumeRoleWithWebIdentity para a função fornecida usando o GoogleServiceAccount para este projeto.

cloudfrontDomain

string

Opcional. O nome de domínio da distribuição do CloudFront que aponta para este bucket, para uso ao buscar.

Consulte Transferir do S3 pelo CloudFront para mais informações.

Formato: https://{id}.cloudfront.net ou qualquer domínio personalizado válido. Precisa começar com https://.

credentialsSecret

string

Opcional. O nome do recurso de um secret no Secret Manager.

As credenciais da AWS precisam ser armazenadas no Secret Manager no formato JSON:

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

GoogleServiceAccount precisa receber roles/secretmanager.secretAccessor para o recurso.

Consulte Configurar o acesso a uma fonte: Amazon S3 para mais informações.

Se credentialsSecret for especificado, não especifique roleArn ou awsAccessKey.

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

Campo de união private_network.

private_network pode ser apenas de um dos tipos a seguir:

managedPrivateNetwork

boolean

Bytes de saída em uma rede privada gerenciada pelo Google. Essa rede é compartilhada entre outros usuários do Serviço de transferência do Storage.

AwsAccessKey

Chave de acesso da AWS (consulte Credenciais de segurança da AWS).

Para informações sobre nossa política de retenção de dados de credenciais do usuário, consulte Credenciais do usuário.

Representação JSON
{
  "accessKeyId": string,
  "secretAccessKey": string
}
Campos
accessKeyId

string

Obrigatório. ID da chave de acesso da AWS.

secretAccessKey

string

Obrigatório. Chave de acesso secreta da AWS. Esse campo não é retornado nas respostas de RPC.

HttpData

Um recurso HttpData especifica uma lista de objetos na Web que serão transferidos por HTTP. As informações dos objetos a serem transferidos estão contidas em um arquivo referenciado por um URL. A primeira linha do arquivo precisa ser "TsvHttpData-1.0", que especifica o formato do arquivo. As linhas seguintes especificam as informações da lista de objetos, um objeto por entrada. Cada entrada tem os seguintes campos delimitados por tabulação:

  • URL HTTP: o local do objeto.

  • Comprimento: o tamanho do objeto em bytes.

  • MD5: o hash MD5 codificado em base64 do objeto.

Para conferir um exemplo de arquivo TSV válido, consulte Transferir dados de URLs.

Ao transferir dados com base em uma lista de URLs, considere o seguinte:

  • Quando um objeto localizado em http(s)://hostname:port/<URL-path> é transferido para um destino de dados, o nome do objeto no destino de dados é <hostname>/<URL-path>.

  • Se o tamanho especificado de um objeto não corresponder ao tamanho real do objeto buscado, ele não será transferido.

  • Se o MD5 especificado não corresponder ao MD5 calculado a partir dos bytes transferidos, a transferência do objeto falhará.

  • Cada URL especificado por você é acessível publicamente. Por exemplo, no Cloud Storage, você pode compartilhar um objeto publicamente e gerar um link para ele.

  • O Serviço de transferência do Cloud Storage obedece às regras robots.txt e exige que o servidor HTTP de origem ofereça suporte a solicitações Range e retorne um cabeçalho Content-Length em cada resposta.

  • ObjectConditions não tem efeito ao filtrar objetos para transferência.

Representação JSON
{
  "listUrl": string
}
Campos
listUrl

string

Obrigatório. O URL que aponta para o arquivo que armazena as entradas da lista de objetos. Esse arquivo precisa permitir acesso público. Atualmente, apenas URLs com esquemas HTTP e HTTPS são aceitos.

AzureBlobStorageData

Um recurso AzureBlobStorageData pode ser uma fonte de dados, mas não um destino de dados. Um recurso AzureBlobStorageData representa um contêiner do Azure. A conta de armazenamento determina o endpoint do Azure. Em um recurso AzureBlobStorageData, o nome de um blob é o nome da chave do blob do Armazenamento de blobs do Azure.

Representação JSON
{
  "storageAccount": string,
  "azureCredentials": {
    object (AzureCredentials)
  },
  "container": string,
  "path": string,
  "credentialsSecret": string
}
Campos
storageAccount

string

Obrigatório. O nome da conta do Armazenamento do Azure.

azureCredentials

object (AzureCredentials)

Obrigatório. Somente entrada. Credenciais usadas para autenticar solicitações de API no Azure.

Para informações sobre nossa política de retenção de dados de credenciais do usuário, consulte Credenciais do usuário.

container

string

Obrigatório. O contêiner a ser transferido da conta do Azure Storage.

path

string

Caminho raiz para transferir objetos.

Precisa ser uma string vazia ou um nome de caminho completo que termine com um "/". Esse campo é tratado como um prefixo de objeto. Por isso, geralmente não deve começar com um "/".

credentialsSecret

string

Opcional. O nome do recurso de um secret no Secret Manager.

O token SAS do Azure precisa ser armazenado no Secret Manager no formato JSON:

{ "sasToken" : "SAS_TOKEN" }

GoogleServiceAccount precisa receber roles/secretmanager.secretAccessor para o recurso.

Consulte Configurar o acesso a uma origem: Armazenamento de blobs do Microsoft Azure para mais informações.

Se credentialsSecret for especificado, não especifique azureCredentials.

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

AzureCredentials

Credenciais do Azure

Para informações sobre nossa política de retenção de dados de credenciais do usuário, consulte Credenciais do usuário.

Representação JSON
{
  "sasToken": string
}
Campos
sasToken

string

Obrigatório. Assinatura de acesso compartilhado (SAS) do Azure.

Para mais informações sobre SAS, consulte Conceder acesso limitado aos recursos do Azure Storage usando assinaturas de acesso compartilhado (SAS).

AwsS3CompatibleData

Um recurso AwsS3CompatibleData.

Representação 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.
}
Campos
bucketName

string

Obrigatório. Especifica o nome do bucket.

path

string

Especifica o caminho raiz para transferir objetos.

Precisa ser uma string vazia ou um nome de caminho completo que termine com um "/". Esse campo é tratado como um prefixo de objeto. Por isso, geralmente não deve começar com um "/".

endpoint

string

Obrigatório. Especifica o endpoint do serviço de armazenamento.

region

string

Especifica a região para assinar solicitações. Deixe em branco se as solicitações precisarem ser assinadas com uma região vazia.

Campo de união data_provider. Especifica os metadados do provedor de dados compatível com o S3. Cada provedor pode conter alguns atributos que não se aplicam a todos os provedores de dados compatíveis com o S3. Quando não especificado, o S3CompatibleMetadata é usado por padrão. data_provider pode ser apenas de um dos tipos a seguir:
s3Metadata

object (S3CompatibleMetadata)

Metadados compatíveis com o S3.

S3CompatibleMetadata

O S3CompatibleMetadata contém os campos de metadados que se aplicam aos tipos básicos de provedores de dados compatíveis com o S3.

Representação JSON
{
  "authMethod": enum (AuthMethod),
  "requestModel": enum (RequestModel),
  "protocol": enum (NetworkProtocol),
  "listApi": enum (ListApi)
}
Campos
authMethod

enum (AuthMethod)

Especifica o método de autenticação e autorização usado pelo serviço de armazenamento. Quando não for especificado, o serviço de transferência vai tentar determinar o método de autenticação correto a ser usado.

requestModel

enum (RequestModel)

Especifica o modelo de solicitação de API usado para chamar o serviço de armazenamento. Quando não especificado, o valor padrão de RequestModel REQUEST_MODEL_VIRTUAL_HOSTED_STYLE é usado.

protocol

enum (NetworkProtocol)

Especifica o protocolo de rede do agente. Quando não especificado, o valor padrão de NetworkProtocol NETWORK_PROTOCOL_HTTPS é usado.

listApi

enum (ListApi)

A API Listing a ser usada para descobrir objetos. Quando não for especificado, o serviço de transferência vai tentar determinar a API certa a ser usada.

AuthMethod

O método de autenticação e autorização usado pelo serviço de armazenamento.

Enums
AUTH_METHOD_UNSPECIFIED AuthMethod não foi especificado.
AUTH_METHOD_AWS_SIGNATURE_V4 Solicitações de autenticação com AWS SigV4.
AUTH_METHOD_AWS_SIGNATURE_V2 Solicitações de autenticação com o AWS SigV2.

RequestModel

O modelo de solicitação da API.

Enums
REQUEST_MODEL_UNSPECIFIED O RequestModel não foi especificado.
REQUEST_MODEL_VIRTUAL_HOSTED_STYLE Faça solicitações usando o estilo hospedado virtual. Exemplo: https://bucket-name.s3.region.amazonaws.com/key-name
REQUEST_MODEL_PATH_STYLE Realize solicitações usando o estilo de caminho. Exemplo: https://s3.region.amazonaws.com/bucket-name/key-name

NetworkProtocol

O protocolo de rede do agente para acessar o serviço de armazenamento.

Enums
NETWORK_PROTOCOL_UNSPECIFIED NetworkProtocol não foi especificado.
NETWORK_PROTOCOL_HTTPS Realize solicitações usando HTTPS.
NETWORK_PROTOCOL_HTTP Não recomendado: envia dados em texto não criptografado. Isso só é adequado em uma rede fechada ou para dados disponíveis publicamente. Fazer solicitações usando HTTP.

ListApi

A API Listing a ser usada para descobrir objetos.

Enums
LIST_API_UNSPECIFIED A ListApi não foi especificada.
LIST_OBJECTS_V2 Faça a listagem usando a API ListObjectsV2.
LIST_OBJECTS API ListObjects legada.

HdfsData

Um recurso HdfsData especifica um caminho em uma entidade do HDFS (por exemplo, um cluster). Todas as configurações específicas do cluster, como nomeados e portas, são configuradas nos agentes de transferência que atendem às solicitações. Portanto, o HdfsData contém apenas o caminho raiz dos dados na transferência.

Representação JSON
{
  "path": string
}
Campos
path

string

Caminho raiz para transferir arquivos.

TransferManifest

Especifica onde o manifesto está localizado.

Representação JSON
{
  "location": string
}
Campos
location

string

Especifica o caminho para o manifesto no Cloud Storage. A conta de serviço gerenciada pelo Google para a transferência precisa ter a permissão storage.objects.get para esse objeto. Um exemplo de caminho é gs://bucketName/path/manifest.csv.