O Serviço de transferência de armazenamento suporta a transferência de ficheiros ou objetos específicos, que são especificados através de um manifesto. Um manifesto é um ficheiro CSV carregado para o Cloud Storage que contém uma lista de ficheiros ou objetos sobre os quais o Storage Transfer Service deve atuar.
Pode usar um manifesto para as seguintes transferências:
Do AWS S3, do armazenamento compatível com S3, do Azure Blobstore ou do Cloud Storage para um contentor do Cloud Storage.
De um sistema de ficheiros para um contentor do Cloud Storage.
De um contentor do Cloud Storage para um sistema de ficheiros.
Entre dois sistemas de ficheiros.
De uma origem HTTP/HTTPS acessível publicamente para um contentor do Cloud Storage. Siga as instruções em Criar uma lista de URLs, uma vez que o formato do manifesto é exclusivo para listas de URLs.
Crie um manifesto
Os ficheiros de manifesto têm os seguintes requisitos:
- Os manifestos têm de estar formatados como CSV.
- Podem conter quaisquer carateres UTF-8.
- A primeira coluna tem de ser um nome de ficheiro ou um nome de objeto. O nome é relativo ao caminho raiz ou ao contentor e à pasta especificados na tarefa de transferência. Consulte os artigos Transferências do sistema de ficheiros e Transferências de armazenamento de objetos para ver detalhes.
- Os ficheiros do manifesto não suportam carateres universais. Os nomes de pastas sem um nome de ficheiro ou de objeto não são suportados.
- Se um nome de ficheiro ou de objeto contiver uma vírgula, o nome tem de estar entre aspas duplas. Por exemplo,
"doe,john.txt"
. - Para transferências que usam agentes de transferência (ou seja, transferências do sistema de ficheiros ou transferências de armazenamento compatível com S3), o tamanho máximo do ficheiro de manifesto é de 1 GiB, o que se traduz em aproximadamente 1 milhão de linhas. Se o ficheiro de manifesto tiver mais de 1 GiB, pode dividi-lo em vários ficheiros e executar várias tarefas de transferência. Para transferências sem agente, não existe um limite para o tamanho do ficheiro de manifesto.
Recomendamos que teste a transferência com um pequeno subconjunto de ficheiros ou objetos para evitar chamadas de API desnecessárias devido a erros de configuração.
Pode monitorizar o estado das transferências de ficheiros na página Tarefas de transferência. Os ficheiros ou os objetos cuja transferência falha são apresentados nos registos de transferência.
Transferências de sistemas de ficheiros
Para criar um manifesto de ficheiros num sistema de ficheiros, crie um ficheiro CSV com uma única coluna que contenha os caminhos dos ficheiros relativos ao diretório raiz especificado na criação da tarefa de transferência.
Por exemplo, para transferir os seguintes ficheiros do sistema de ficheiros:
Caminho do ficheiro |
---|
rootdir/dir1/subdir1/file1.txt |
rootdir/file2.txt |
rootdir/dir2/subdir1/file3.txt |
O manifesto deve ter um aspeto semelhante ao seguinte exemplo:
dir1/subdir1/file1.txt
file2.txt
dir2/subdir1/file3.txt
Guarde o ficheiro de manifesto com qualquer nome de ficheiro e uma extensão .csv
.
Transferências de armazenamento de objetos
Para criar um manifesto de objetos, crie um ficheiro CSV cuja primeira coluna contenha os nomes dos objetos relativos ao nome do contentor e ao caminho especificados na criação da tarefa de transferência. Todos os objetos têm de estar no mesmo contentor.
Também pode especificar uma segunda coluna opcional com o número de geração do Cloud Storage da versão específica a transferir.
Por exemplo, pode querer transferir os seguintes objetos:
Caminho do objeto | Número de geração do Cloud Storage |
---|---|
SOURCE_PATH/object1.pdf |
1664826685911832 |
SOURCE_PATH/object2.pdf |
|
SOURCE_PATH/object3.pdf |
1664826610699837 |
O manifesto deve ter um aspeto semelhante ao seguinte exemplo:
object1.pdf,1664826685911832
object2.pdf
object3.pdf,1664826610699837
Guarde o ficheiro de manifesto com qualquer nome de ficheiro e uma extensão .csv
.
Transferências HTTP/HTTPS
Para transferir ficheiros específicos de uma origem HTTP ou HTTPS, consulte as instruções em Crie uma lista de URLs.
Publique o manifesto
Depois de criar o manifesto, tem de o disponibilizar ao Storage Transfer Service. O Serviço de transferência de armazenamento pode aceder ao ficheiro num contentor do Cloud Storage ou no seu sistema de ficheiros.
Carregue o manifesto para o Cloud Storage
Pode armazenar o ficheiro de manifesto em qualquer contentor do Cloud Storage.
O agente de serviço que executa a transferência tem de ter a autorização storage.objects.get
para o contentor que contém o manifesto. Consulte o artigo
Conceda as autorizações necessárias
para obter instruções sobre como encontrar o ID do agente do serviço e conceder autorizações a
esse agente do serviço num contentor.
Para obter instruções sobre como carregar o manifesto para um contentor, consulte o artigo Carregue objetos na documentação do Cloud Storage.
Por exemplo, para usar a CLI para carregar um ficheiro para o Cloud Storage,
use o comando gcloud storage cp
:gcloud
gcloud storage cp MANIFEST.CSV gs://DESTINATION_BUCKET_NAME/
Onde:
MANIFEST.CSV
é o caminho local para o seu ficheiro de manifesto. Por exemplo,Desktop/manifest01.csv
.DESTINATION_BUCKET_NAME
é o nome do contentor para o qual está a carregar o seu objeto. Por exemplo,my-bucket
.
Se for bem-sucedido, a resposta é semelhante ao exemplo seguinte:
Completed files 1/1 | 164.3kiB/164.3kiB
Pode encriptar um manifesto usando chaves de encriptação do Cloud KMS geridas pelo cliente. Neste caso, certifique-se de que as contas de serviço que acedem ao manifesto têm as chaves de encriptação aplicáveis atribuídas. As chaves fornecidas pelo cliente não são suportadas.
Armazene o manifesto num sistema de ficheiros
Pode armazenar o ficheiro do manifesto no sistema de ficheiros de origem ou de destino.
A localização do ficheiro tem de estar acessível aos agentes de transferência. Se restringir o acesso ao diretório para os seus agentes, certifique-se de que o ficheiro de manifesto está localizado num diretório montado.
Inicie uma transferência
Não modifique o ficheiro de manifesto até que uma operação de transferência seja concluída. Recomendamos que bloqueie o ficheiro de manifesto quando estiver a decorrer uma transferência.
Cloud Console
Para iniciar uma transferência com um manifesto a partir da Cloud Console:
Siga as instruções em Criar transferências para selecionar a origem, o destino e as opções.
No passo final, Escolher definições, selecione a caixa de verificação com o nome Facultar lista de ficheiros a transferir através do ficheiro de manifesto.
Introduza a localização do ficheiro de manifesto.
gcloud
Para transferir os ficheiros ou os objetos listados no manifesto, inclua a flag --manifest-file=MANIFEST_FILE
com o comando gcloud transfer jobs create
.
gcloud transfer jobs create SOURCE DESTINATION \
--manifest-file=MANIFEST_FILE
MANIFEST_FILE pode ter qualquer um dos seguintes valores:
O caminho para o ficheiro CSV num contentor do Cloud Storage:
--manifest-file=gs://my_bucket/sample_manifest.csv
Consulte o artigo Carregue o manifesto para o Cloud Storage para ver detalhes sobre as autorizações necessárias, se o contentor ou o ficheiro não for público.
O caminho relativo do sistema de ficheiros SOURCE, incluindo qualquer caminho especificado:
--manifest-file=source://relative_path/sample_manifest.csv
O caminho relativo do sistema de ficheiros DESTINATION, incluindo qualquer caminho especificado:
--manifest-file=destination://relative_path/sample_manifest.csv
REST + bibliotecas cliente
REST
Para transferir os ficheiros ou os objetos listados no manifesto, faça uma chamada à API createTransferJob
que especifique um transferSpec
com o campo transferManifest
adicionado. Por exemplo:
POST https://storagetransfer.googleapis.com/v1/transferJobs ... "transferSpec": { "posixDataSource": { "rootDirectory": "/home/", }, "gcsDataSink": { "bucketName": "GCS_NEARLINE_SINK_NAME", "path": "GCS_SINK_PATH", }, "transferManifest": { "location": "gs://my_bucket/sample_manifest.csv" } }
O ficheiro de manifesto pode ser armazenado num contentor do Cloud Storage ou no sistema de ficheiros de origem ou de destino. Os contentores do Cloud Storage têm de usar o prefixo gs://
e incluir o caminho completo, incluindo o nome do contentor. As localizações do sistema de ficheiros têm de usar um prefixo source://
ou destination://
e são relativas à origem ou ao destino do sistema de ficheiros e ao diretório raiz opcional.
Ir
Java
Node.js
Python
Os objetos ou os ficheiros no manifesto não são necessariamente transferidos na ordem indicada.
Se o manifesto incluir ficheiros que já existem no destino, esses ficheiros são ignorados, a menos que a opção overwrite objects already existing in sink seja especificada.
Se o manifesto incluir objetos que existem numa versão diferente no destino, o objeto no destino é substituído pela versão de origem do objeto. Se o destino for um contentor com versões, é criada uma nova versão do objeto.
O que se segue?
- Saiba como filtrar objetos de transferências.
- Saiba como agendar tarefas de transferência.