Nesta página, mostramos como copiar, renomear e mover objetos dentro e entre buckets no Cloud Storage.
Embora algumas ferramentas no Cloud Storage façam com que a movimentação ou renomeação de objetos pareça uma operação única, elas sempre consistem em uma operação de cópia seguida de uma operação de exclusão do objeto original, porque os objetos são immutable.
Copiar um objeto
Para copiar um objeto em um intervalo do Cloud Storage:
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome daquele que contém o objeto que você quer copiar.
A página Detalhes do bucket é aberta, com a guia Objetos selecionada.
Navegue até o objeto, que pode estar localizado em uma pasta.
Clique no menu flutuante objeto (more_vert) associado ao objeto.
Clique em Copiar.
O painel Copiar objeto é exibido.
No campo Destino, digite o nome do bucket de destino e o nome do objeto copiado.
Se preferir, clique em Procurar para selecionar o destino. No entanto, as opções de navegação são limitadas aos buckets no projeto atual.
Clique em Copiar.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
Use o comando gcloud storage cp
:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/NAME_OF_COPY
Em que:
SOURCE_BUCKET_NAME
é o nome do bucket que contém o objeto que você quer copiar. Por exemplo,my-bucket
.SOURCE_OBJECT_NAME
é o nome do objeto que você quer copiar. Por exemplo,pets/dog.png
.DESTINATION_BUCKET_NAME
é o nome do bucket para o qual você quer copiar seu objeto. Por exemplo,another-bucket
.NAME_OF_COPY
é o nome que você quer dar à cópia do seu objeto. Por exemplo,shiba.png
.
Se a operação for bem-sucedida, a resposta será semelhante a esta:
Copying gs://example-bucket/file.txt to gs://other-bucket/file-copy.txt Completed files 1/1 | 164.3kiB/164.3kiB
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação dePOST
Object:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/NAME_OF_COPY"
Em que:
SOURCE_BUCKET_NAME
é o nome do bucket que contém o objeto que você quer copiar. Por exemplo,my-bucket
.SOURCE_OBJECT_NAME
é o nome codificado por URL do objeto que você quer copiar. Por exemplo,pets/dog.png
, codificado por URL comopets%2Fdog.png
.DESTINATION_BUCKET_NAME
é o nome do bucket para o qual você quer copiar seu objeto. Por exemplo,another-bucket
.NAME_OF_COPY
é o nome codificado por URL que você quer dar à cópia do seu objeto. Por exemplo,shiba.png
.
Como o método
rewrite
copia dados em blocos de tamanho limitado, sua cópia pode exigir várias solicitações, especialmente para objetos grandes.Por exemplo, a resposta a seguir para uma solicitação
rewrite
indica que você precisa fazer outras solicitaçõesrewrite
:{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 1048576, "objectSize": 10000000000, "done": false, "rewriteToken": TOKEN_VALUE }
Use o
rewriteToken
em uma solicitação subsequente para continuar copiando dados:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -d '{"rewriteToken": "TOKEN_VALUE"}' \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/NAME_OF_COPY"
Em que:
TOKEN_VALUE
é o valor derewriteToken
retornado na solicitação anterior.- Todos os outros valores correspondem aos usados na solicitação anterior.
Quando o objeto é totalmente copiado, a última resposta tem uma propriedade
done
definida comotrue
, não há propriedaderewriteToken
e os metadados da cópia são incluídos na propriedaderesource
.{ "kind": "storage#rewriteResponse", "totalBytesRewritten": 10000000000, "objectSize": 10000000000, "done": true, "resource": objects Resource }
API XML
Ter a CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Use
cURL
para chamar a API XML com uma solicitação de objetoPUT
:curl -X PUT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-copy-source: SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME" \ "https://storage.googleapis.com/DESTINATION_BUCKET_NAME/NAME_OF_COPY"
Em que:
SOURCE_BUCKET_NAME
é o nome do bucket que contém o objeto que você quer copiar. Por exemplo,my-bucket
.SOURCE_OBJECT_NAME
é o nome do objeto que você quer copiar. Por exemplo,pets/dog.png
.DESTINATION_BUCKET_NAME
é o nome do bucket para o qual você quer copiar seu objeto. Por exemplo,another-bucket
.NAME_OF_COPY
é o nome codificado por URL que você quer dar à cópia do seu objeto. Por exemplo,shiba.png
.
Mover ou renomear um objeto
Para mover um objeto no Cloud Storage entre buckets ou renomear um objeto dentro de um bucket:
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket que contém o objeto que você quer mover ou renomear.
A página Detalhes do bucket é aberta, com a guia Objetos selecionada.
Navegue até o objeto, que pode estar localizado em uma pasta.
Clique no menu flutuante objeto (more_vert) associado ao objeto.
Se você quiser dar um novo nome ao objeto no mesmo bucket, clique em Renomear.
Na janela de sobreposição, insira um novo nome para o objeto.
Clique em Renomear.
Se quiser mover o objeto para outro bucket, clique em Mover.
Na janela de sobreposição que aparece, clique em Procurar.
Selecione o destino do objeto que você está movendo.
Clique em Selecionar.
Clique em Mover.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
Use o comando gcloud storage mv
:
gcloud storage mv gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME
Em que:
SOURCE_BUCKET_NAME
é o nome do bucket que contém o objeto que você quer mover ou renomear. Por exemplo,my-bucket
.SOURCE_OBJECT_NAME
é o nome do objeto que você quer mover ou renomear. Por exemplo,pets/dog.png
.DESTINATION_BUCKET_NAME
é o nome do bucket que armazena o objeto movido ou renomeado. Por exemplo,another-bucket
.DESTINATION_OBJECT_NAME
é o nome que você quer que o objeto tenha após ser movido ou renomeado. Por exemplo,shiba.png
.
Se a operação for bem-sucedida, a resposta será semelhante a esta:
Copying gs://example-bucket/old-file.txt to gs://new-bucket/new-file.txt Removing gs://example-bucket/old-file.txt... Completed files 1/1 | 164.3kiB/164.3kiB
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
APIs REST
API JSON
Para mover ou renomear um objeto usando diretamente a API JSON, primeiro faça uma cópia do objeto com as propriedades desejadas e exclua o objeto original.
API XML
Para mover ou renomear um objeto usando diretamente a API XML, primeiro faça uma cópia do objeto com as propriedades desejadas e exclua o objeto original.
Recomendamos usar o Serviço de Transferência do Cloud Storage para mover mais de 1 TB de dados entre buckets.
A seguir
- Altere a classe de armazenamento de um objeto.
- Edite os metadados de um objeto.
- Torne objetos e buckets acessíveis publicamente.
- Saiba mais sobre os requisitos de nomenclatura de objetos.
- Saiba como usar condições predefinidas para evitar disputas.