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 imutáveis.
Permissões necessárias
Console
Para concluir este guia usando o Console do Google Cloud, é preciso ter as permissões de IAM adequadas. Se os buckets que você quer acessar existirem em um projeto que você não criou, talvez seja necessário que o proprietário do projeto conceda a você um papel que contenha as permissões necessárias.
Para uma lista de permissões necessárias para ações específicas, consulte Permissões do IAM para o Console do Google Cloud.
Para ver a lista de papéis relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
Linha de comando
Para concluir este guia usando um utilitário de linha de comando, você precisa ter as permissões de IAM adequadas. Se os buckets que você quer acessar existirem em um projeto que você não criou, talvez seja necessário que o proprietário do projeto conceda a você um papel que contenha as permissões necessárias.
Para uma lista de permissões necessárias para ações específicas, consulte
Permissões do IAM
para comandos gcloud storage
.
Para ver a lista de papéis relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
Bibliotecas de cliente
Para concluir este guia usando as bibliotecas de cliente do Cloud Storage, é preciso ter as permissões de IAM adequadas. Se os buckets que você quer acessar existirem em um projeto que você não criou, talvez seja necessário que o proprietário do projeto conceda a você um papel que contenha as permissões necessárias.
A menos que indicado de outra forma, as solicitações da biblioteca de cliente são feitas por meio da API JSON e exigem permissões conforme listado nas permissões do IAM para métodos JSON. Para conferir quais métodos da API JSON são invocados ao fazer solicitações usando uma biblioteca de cliente, registre as solicitações brutas.
Para conferir a lista de papéis do IAM relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
APIs REST
API JSON
Para concluir este guia usando a API JSON, é preciso ter as permissões do IAM adequadas. Se os buckets que você quer acessar existirem em um projeto que você não criou, talvez seja necessário que o proprietário do projeto conceda a você um papel que contenha as permissões necessárias.
Para uma lista de permissões necessárias para ações específicas, consulte Permissões do IAM para métodos JSON.
Para ver a lista de papéis relevantes, consulte Papéis do Cloud Storage. Como alternativa, é possível criar um papel personalizado que tenha permissões mais limitadas.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
para chamar a API JSON com uma solicitação dePOST
Objeto: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 gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) 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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
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.