Esta página mostra como criar e iniciar tarefas de transferência do Amazon S3 para o Cloud Storage.
Configure autorizações
Antes de criar uma transferência, tem de configurar as autorizações no seu contentor do Amazon S3. Consulte o artigo Configurar o acesso a uma origem: Amazon S3 para ver detalhes.
Também tem de configurar autorizações para as seguintes Google Cloud entidades:
A conta de utilizador que está a ser usada para criar a transferência. Esta é a conta com sessão iniciada na consola ou a conta especificada quando se autentica na CLI `gcloud`. Google Cloud A conta de utilizador pode ser uma conta de utilizador normal ou uma conta de serviço gerida pelo utilizador. | |
A conta de serviço gerida pela Google, também conhecida como agente de serviço, usada pelo Serviço de Transferência de Armazenamento. Geralmente, esta conta é identificada pelo
respetivo endereço de email, que usa o formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com .
|
Consulte as autorizações de transferência sem agente para ver instruções.
Opções de saída
O Serviço de transferência de armazenamento oferece várias opções para transferir os seus dados do S3 para o Cloud Storage.
Opção de saída | Descrição |
---|---|
Predefinição sem agente | Esta opção usa uma transferência gerida e sem agente do S3. A Amazon cobra-lhe a saída.
Siga as instruções nesta página para usar esta opção. |
Distribuição do CloudFront | Use uma distribuição do Amazon CloudFront como um caminho de saída. As transferências de dados através do CloudFront podem beneficiar de custos de saída da AWS mais baixos em comparação com a transferência diretamente do S3. Consulte os preços do CloudFront e os custos de saída do S3
para ver detalhes.
Siga as instruções em Transferência do S3 através do CloudFront para configurar a sua distribuição e criar uma transferência. |
Rede privada gerida | Transfira os seus dados através de uma rede gerida pela Google. Não paga encargos de saída do S3. Em vez disso, paga uma taxa por GiB àGoogle Cloud. Consulte a página Preços
para ver detalhes. Pode continuar a receber cobranças de operações da AWS (por exemplo, LIST ou GET
chamadas); consulte os preços para ver detalhes.
Todas as transferências de projetos através da rede privada gerida partilham a mesma largura de banda. Em alturas de utilização elevada, a sua transferência pode ficar mais lenta. As transferências com ficheiros grandes são mais afetadas do que as transferências com ficheiros pequenos. Siga as instruções nesta página para usar esta opção. Especifique a opção Rede privada gerida na Google Cloud consola ou o campo managedPrivateNetwork na API REST. A CLI gcloud e as bibliotecas cliente não suportam transferências de rede privada gerida. Consulte as
regiões suportadas. |
Orientado por agente | Válido para todo o armazenamento compatível com o S3, incluindo o Amazon S3. Ao instalar software de agente em máquinas com acesso aos seus contentores S3, pode controlar o caminho e a largura de banda da rede. Esta opção requer agentes e conjuntos de agentes.
Siga as instruções em Transferir de origens compatíveis com S3 para usar esta opção. |
Regiões suportadas
O Serviço de transferência de armazenamento suporta as seguintes regiões do Amazon S3:
af-south-1 ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ap-southeast-2 ap-southeast-3 |
ap-southeast-4 ca-central-1 ca-west-1 eu-central-1 eu-central-2 eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-2
|
eu-west-3 il-central-1 me-central-1 me-south-1 sa-east-1 us-east-1 us-east-2 us-west-1 us-west-2
|
ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ca-central-1 ca-west-1 eu-central-1 eu-central-2 |
eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-2 eu-west-3 us-east-1 us-east-2 us-west-1 us-west-2
|
Opções de transferência
As seguintes funcionalidades do Serviço de transferência de armazenamento estão disponíveis para transferências do S3 para o Cloud Storage
- Transfira ficheiros específicos através de um manifesto
- Pode transmitir uma lista de ficheiros para o serviço de transferência de armazenamento agir. Consulte o artigo Transfira ficheiros ou objetos específicos através de um manifesto para ver detalhes.
- Filtre objetos de origem por prefixo ou por hora da última modificação
-
Pode optar por incluir ou excluir objetos da transferência com base no nome do ficheiro e no caminho, ou na hora da última modificação.
Os filtros de prefixo são descritos nos filtros de prefixo.
Os filtros baseados no tempo incluem:
- Tempo mínimo decorrido e tempo máximo decorrido desde a última modificação. Ambos aceitam um valor em segundos para filtrar objetos que foram ou não modificados num determinado período.
- Last modified since e last modified before, que aceitam um valor dateTime.
Tenha em atenção que os filtros baseados no tempo para transferências do S3 dependem da definição da AWS de "hora da última modificação", que é a hora em que um objeto começa o carregamento. Uma vez que um objeto não está disponível até o carregamento terminar, pode encontrar objetos cuja hora da última modificação cumpre os critérios do filtro, mas que ainda estão a ser carregados. Estes objetos não vão ser incluídos na sua tarefa de transferência. Para evitar problemas, recomendamos o seguinte:
- Em vez de filtros baseados no tempo, use [transferências orientadas por eventos](/storage-transfer/docs/event-driven-aws) para transferir objetos à medida que ficam disponíveis.
- Para evitar objetos em falta em transferências recorrentes, o período de análise da "hora de modificação recente" deve ser superior à programação recorrente. Por exemplo, para uma tarefa executada a cada hora, um período de análise de duas horas oferece uma margem.
- Especifique a classe de armazenamento
- Pode especificar a
classe de armazenamento do Cloud Storage a usar para os seus dados no contentor
de destino. Consulte as opções
StorageClass
para ver detalhes do REST ou use a flag--custom-storage-class
com a CLI do Google Cloud.Tenha em atenção que todas as definições da classe de armazenamento são ignoradas se o contentor de destino tiver o Autoclass ativado. Se o Autoclass estiver ativado, os objetos transferidos para o contentor são inicialmente definidos como armazenamento padrão.
- Preservação de metadados
-
Quando transfere ficheiros do S3, o Serviço de transferência de armazenamento pode preservar opcionalmente determinados atributos como metadados personalizados.
Consulte a secção Amazon S3 para Cloud Storage de Preservação de metadados para ver detalhes sobre os metadados que podem ser preservados e como configurar a transferência.
- Transferências orientadas por eventos
- O Serviço de transferência de armazenamento pode ouvir notificações de eventos do Amazon S3 enviadas para o Amazon SQS para transferir automaticamente dados que foram adicionados ou atualizados na localização de origem. Consulte o artigo Transferências baseadas em eventos para obter informações.
- Registo e monitorização
- As transferências do S3 podem ser vistas nos Registos na nuvem e no Cloud Monitoring. Consulte os artigos Cloud Logging para o Serviço de transferência de armazenamento e Monitorize tarefas de transferência para ver detalhes. Também pode configurar notificações do Pub/Sub.
Crie uma transferência
O serviço de transferência de armazenamento oferece várias interfaces através das quais pode criar uma transferência.
Não inclua informações confidenciais, como informações de identificação pessoal (IIP) ou dados de segurança, no nome da tarefa de transferência. Os nomes dos recursos podem ser propagados para os nomes de outros Google Cloud recursos e podem ser expostos a sistemas internos da Google fora do seu projeto.
Google Cloud consola
Aceda à página Serviço de transferência de armazenamento na Google Cloud consola.
Clique em Criar tarefa de transferência. É apresentada a página Criar tarefa de transferência.
Em Tipo de origem, selecione Amazon S3.
Como Tipo de destino, selecione Google Cloud Storage.
Selecione o Modo de agendamento. As transferências em lote são executadas de forma única ou agendada. As transferências orientadas por eventos monitorizam continuamente a origem e transferem dados quando são adicionados ou modificados.
Para configurar uma transferência baseada em eventos, siga as instruções em Transferências baseadas em eventos.
Clique em Passo seguinte.
No campo Nome do contentor ou da pasta, introduza o nome do contentor de origem.
O nome do contentor é o nome apresentado na AWS Management Console.
Se estiver a usar uma distribuição do CloudFront para transferir a partir do S3, introduza o nome do domínio de distribuição no campo Domínio do CloudFront. Por exemplo,
https://dy1h2n3l4ob56.cloudfront.net
. Consulte o artigo Transferir do S3 através do CloudFront para configurar uma distribuição do CloudFront.Para usar uma rede privada gerida para esta transferência, selecione a caixa de verificação. Consulte as Opções de saída para ver detalhes.
Selecione o seu método de autenticação do Amazon Web Services (AWS). Consulte o artigo Configure o acesso a uma origem: Amazon S3 para ver detalhes.
Chave de acesso: introduza a chave de acesso no campo ID da chave de acesso e o segredo associado à chave de acesso no campo Chave de acesso secreta.
Função do IAM da AWS para federação de identidades: introduza o seu ARN no campo ARN da função do IAM da AWS, com a seguinte sintaxe:
arn:aws:iam::ACCOUNT:role/ROLE-NAME-WITH-PATH
Onde:
ACCOUNT
: O ID da conta da AWS sem hífenes.ROLE-NAME-WITH-PATH
: O nome da função da AWS, incluindo o caminho.
Para mais informações sobre ARNs, consulte o artigo ARNs do IAM.
Recurso secreto: selecione esta opção para usar uma credencial da Amazon guardada no Gestor Secreto. Selecione um segredo na lista ou introduza um manualmente no formato
projects/PROJECT_NUMBER/secrets/SECRET_NAME
.
Se for uma transferência baseada em eventos, introduza o ARN da fila do Amazon SQS, que tem o seguinte formato:
arn:aws:sqs:us-east-1:1234567890:event-queue
- Opcionalmente, opte por
filtrar objetos por prefixo
ou por data da última modificação. Se especificou uma pasta como localização de origem, os filtros de prefixo são relativos a essa pasta. Por exemplo, se a origem for
my-test-bucket/path/
, um filtro de inclusão defile
inclui todos os ficheiros que começam pormy-test-bucket/path/file
. Clique em Passo seguinte.
No campo Bucket ou pasta, introduza o bucket de destino e (opcionalmente) o nome da pasta, ou clique em Procurar para selecionar um bucket numa lista de buckets existentes no seu projeto atual. Para criar um novo contentor, clique em
Criar novo contentor.
Clique em Passo seguinte.
Escolha as definições para a tarefa de transferência.
No campo Descrição, introduza uma descrição da transferência. Como prática recomendada, introduza uma descrição significativa e única para poder distinguir os trabalhos.
Em Opções de metadados, opte por usar as opções predefinidas ou clique em Ver e selecionar opções para especificar valores para todos os metadados suportados. Consulte o artigo Preservação de metadados para ver detalhes.
Em Quando substituir, selecione uma das seguintes opções:
Se for diferente: substitui os ficheiros de destino se o ficheiro de origem com o mesmo nome tiver valores de Etags ou de soma de verificação diferentes.
Sempre: substitui sempre os ficheiros de destino quando o ficheiro de origem tem o mesmo nome, mesmo que sejam idênticos.
Em Quando eliminar, selecione uma das seguintes opções:
Nunca: nunca elimina ficheiros da origem nem do destino.
Eliminar ficheiro da origem após a transferência: elimine os ficheiros da origem após a transferência para o destino. Se um ficheiro de origem não for transferido, por exemplo, porque já existe no destino, o ficheiro de origem não é eliminado.
Eliminar ficheiros do destino se também não estiverem na origem: se os ficheiros no contentor do Cloud Storage de destino também não estiverem na origem, elimine os ficheiros do contentor do Cloud Storage.
Esta opção garante que o contentor do Cloud Storage de destino corresponde exatamente à sua origem.
Em Opções de notificação, selecione o tópico do Pub/Sub e os eventos para os quais quer receber notificações. Consulte as notificações do Pub/Sub para mais detalhes.
Clique em Passo seguinte.
Escolha as opções de programação:
Na lista pendente Executar uma vez, selecione uma das seguintes opções:
Executar uma vez: executa uma única transferência, começando à hora que selecionar.
Executar todos os dias: executa uma transferência diariamente, a partir da hora que selecionar.
Pode introduzir uma Data de conclusão opcional ou deixar a Data de conclusão em branco para executar a transferência continuamente.
Executar todas as semanas: executa uma transferência semanalmente, a partir da hora que selecionar.
Executar com frequência personalizada: executa uma transferência com a frequência que selecionar. Pode optar por repetir a transferência a um intervalo regular de horas, dias ou semanas.
Pode introduzir uma Data de conclusão opcional ou deixar a Data de conclusão em branco para executar a transferência continuamente.
Na lista pendente A partir de agora, selecione uma das seguintes opções:
A partir de agora: inicia a transferência depois de clicar em Criar.
A partir de: inicia a transferência na data e hora que selecionar. Clique em Calendário para apresentar um calendário para selecionar a data de início.
Para criar a tarefa de transferência, clique em Criar.
CLI gcloud
Para criar uma nova tarefa de transferência, use o comando gcloud transfer jobs create
. A criação de uma nova tarefa inicia a transferência especificada, a menos que seja especificado um
horário ou um --do-not-run
.
A CLI gcloud não suporta transferências através do CloudFront nem da rede privada gerida.
gcloud transfer jobs create \
s3://S3_BUCKET_NAME gs://STORAGE_BUCKET_NAME \
--source-creds-file="relative_path/to/creds.json"
Onde:
S3_BUCKET_NAME é a origem de dados desta transferência. Opcionalmente, pode incluir um caminho:
s3://S3_BUCKET_NAME/S3_FOLDER_PATH
STORAGE_BUCKET_NAME é o contentor do Cloud Storage para o qual transferir os dados. Para transferir para um diretório específico, especifique
gs://STORAGE_BUCKET_NAME/STORAGE_FOLDER_PATH/
, incluindo a barra invertida final.--source-creds-file
especifica o caminho relativo para um ficheiro local no seu computador que inclui credenciais da AWS para a origem da transferência. O conteúdo tem de estar no seguinte formato JSON:{ "accessKeyId": string, "secretAccessKey": string }
As opções adicionais incluem:
--do-not-run
impede que o serviço de transferência de armazenamento execute a tarefa após o envio do comando. Para executar a tarefa, atualize-a para adicionar uma programação ou usejobs run
para iniciá-la manualmente.--manifest-file
especifica o caminho para um ficheiro CSV no Cloud Storage que contém uma lista de ficheiros a transferir da sua origem. Para ver a formatação do ficheiro de manifesto, consulte o artigo Transfira ficheiros ou objetos específicos através de um manifesto.Informações da tarefa: pode especificar
--name
e--description
.Schedule: especifique
--schedule-starts
,--schedule-repeats-every
e--schedule-repeats-until
ou--do-not-run
.Condições de objetos: use condições para determinar que objetos são transferidos. Estes incluem
--include-prefixes
e--exclude-prefixes
, e as condições baseadas no tempo em--include-modified-[before | after]-[absolute | relative]
. Se tiver especificado uma pasta com a origem, os filtros de prefixo são relativos a essa pasta. Consulte o artigo Filtre objetos de origem por prefixo para mais informações.Opções de transferência: especifique se quer substituir os ficheiros de destino (
--overwrite-when=different
oualways
) e se quer eliminar determinados ficheiros durante ou após a transferência (--delete-from=destination-if-unique
ousource-after-transfer
); especifique que valores de metadados preservar (--preserve-metadata
); e, opcionalmente, defina uma classe de armazenamento em objetos transferidos (--custom-storage-class
).Notificações: configure as notificações do Pub/Sub para transferências com
--notification-pubsub-topic
,--notification-event-types
e--notification-payload-format
.Cloud Logging: ative o Cloud Logging com
--log-actions
e--log-action-states
. Consulte o artigo Cloud Logging para o Serviço de transferência de armazenamento para ver detalhes.
Para ver todas as opções, execute gcloud transfer jobs create --help
ou consulte a
gcloud
documentação de referência.
REST
Os exemplos seguintes mostram como usar o Serviço de transferência de armazenamento através da API REST.
Quando configura ou edita tarefas de transferência através da API Storage Transfer Service, a hora tem de estar em UTC. Para mais informações sobre como especificar a programação de uma tarefa de transferência, consulte o artigo Programação.
Ao criar tarefas de transferência, não inclua o prefixo s3://
para os nomes de origem do contentor do Amazon S3.bucketName
Transferência sem agente
O exemplo seguinte cria uma tarefa de transferência através da configuração padrão sem agente. Consulte a referência transferJobs.create para ver mais detalhes.
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Consulte o artigo Configurar o acesso a uma origem: Amazon S3 para ver outras opções de autenticação.
Distribuição do CloudFront
Se estiver a transferir a partir do S3 através de uma distribuição do CloudFront, especifique o nome do domínio de distribuição como o valor do campo transferSpec.awsS3DataSource.cloudfrontDomain
:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Rede privada gerida
Para transferir a partir do S3 através de uma rede privada gerida pela Google, especifique o campo
transferSpec.awsS3DataSource.managedPrivateNetwork
:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "managedPrivateNetwork": TRUE, "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Bibliotecas cliente
Os exemplos seguintes mostram como usar o Serviço de transferência de armazenamento através de programação com Go, Java, Node.js e Python.
Quando configura ou edita tarefas de transferência através de programação, a hora tem de estar em UTC. Para mais informações sobre como especificar a programação de uma tarefa de transferência, consulte o artigo Programação.
Para mais informações sobre as bibliotecas de cliente do serviço de transferência de armazenamento, consulte o artigo Introdução às bibliotecas de cliente do serviço de transferência de armazenamento.
Transfira do Amazon S3 para o armazenamento na nuvem
Neste exemplo, vai aprender a mover ficheiros do Amazon S3 para um contentor do Cloud Storage.
Ao criar tarefas de transferência, não inclua o prefixo s3://
para os nomes de origem do contentor do Amazon S3.bucketName
As bibliotecas de cliente do serviço de transferência de armazenamento não suportam transferências através do CloudFront nem da rede privada gerida.
Ir
Java
Procura exemplos mais antigos? Consulte o guia de migração do Serviço de transferência de armazenamento.
Node.js
Python
Procura exemplos mais antigos? Consulte o guia de migração do Serviço de transferência de armazenamento.