Nesta página, mostramos como compor objetos do Cloud Storage em um único objeto. Uma solicitação de composição usa entre 1 e 32 objetos e cria um novo objeto composto. O objeto composto é uma concatenação dos objetos de origem na ordem em que foram especificados na solicitação.
As compor objetos, lembre-se disto:
- Os objetos de origem não são afetados pelo processo de composição. Se eles forem temporários, será necessário excluí-los depois que a composição for concluída com sucesso.
- Como outras classes de armazenamento estão sujeitas a taxas de exclusão antecipada, use sempre o Standard Storage para objetos temporários.
Funções exigidas
Para receber as permissões necessárias para compor objetos, peça ao administrador para conceder a você o papel de IAM de Usuário do objeto do Storage (roles/storage.objectUser
)
no bucket. Esse papel predefinido contém as
permissões necessárias para compor objetos. Para conferir as permissões exatas
necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
storage.objects.create
storage.objects.delete
- Essa permissão só será necessária se você quiser dar ao objeto que está compondo o mesmo nome de um objeto que já existe no bucket.
storage.objects.get
storage.objects.list
- Essa permissão só será necessária se você quiser usar caracteres curinga para compor objetos com um prefixo comum sem precisar listar cada objeto separadamente no comando da CLI do Google Cloud.
Se você quiser definir uma configuração de retenção para o objeto
que criar, também precisará da permissão storage.objects.setRetention
. Para receber essa permissão, peça ao administrador para conceder a você o papel Administrador de objetos
do Storage (roles/storage.objectAdmin
), em vez do papel de Usuário do objeto
do Storage (roles/storage.objectUser
).
Também é possível conseguir essas permissões com outros papéis predefinidos ou personalizados.
Para informações sobre como conceder papéis nos buckets, consulte Usar o IAM com buckets.
Criar um objeto composto
Linha de comando
Use o comando gcloud storage objects compose
:
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/COMPOSITE_OBJECT_NAME
Em que:
BUCKET_NAME
é o nome do bucket que contém os objetos de origem.SOURCE_OBJECT_1
eSOURCE_OBJECT_2
são os nomes dos objetos de origem a serem usados na composição do objeto.COMPOSITE_OBJECT_NAME
é o nome que você atribui ao resultado da composição do objeto.
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
.Crie um arquivo JSON com as informações a seguir:
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" } }
Em que:
SOURCE_OBJECT_1
eSOURCE_OBJECT_2
são os nomes dos objetos de origem a serem usados na composição do objeto.COMPOSITE_OBJECT_CONTENT_TYPE
é o tipo de conteúdo do objeto composto resultante.
Use
cURL
para chamar a API JSON com uma solicitação dePOST
Objeto:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/COMPOSITE_OBJECT_NAME/compose"
Em que:
JSON_FILE_NAME
é o nome do arquivo criado na etapa anterior.BUCKET_NAME
é o nome do bucket que contém os objetos de origem.COMPOSITE_OBJECT_NAME
é o nome que você atribui ao resultado da composição do objeto.
Se bem-sucedida, a resposta será um recurso de objeto para o objeto composto resultante.
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
.Crie um arquivo .xml com as informações a seguir:
<ComposeRequest> <Component> <Name>SOURCE_OBJECT_1</Name> </Component> <Component> <Name>SOURCE_OBJECT_2</Name> </Component> </ComposeRequest>
Em que:
SOURCE_OBJECT_1
eSOURCE_OBJECT_2
são os nomes dos objetos de origem a serem usados na composição do objeto.
Use
cURL
(em inglês) para chamar a API XML com uma solicitação de objetoPUT
e um parâmetro de string de consultacompose
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: COMPOSITE_OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/BUCKET_NAME/COMPOSITE_OBJECT_NAME?compose"
Em que:
XML_FILE_NAME
é o nome do arquivo criado na etapa anterior.COMPOSITE_OBJECT_CONTENT_TYPE
é o tipo de conteúdo do objeto composto resultante.BUCKET_NAME
é o nome do bucket que contém os objetos de origem.COMPOSITE_OBJECT_NAME
é o nome que você atribui ao resultado da composição do objeto.
Se o processo for bem-sucedido, um corpo vazio de resposta será retornado.
A seguir
- Saiba mais sobre composição de objetos.
- Saiba como usar pré-condições de solicitação para evitar disputas.