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.
Permissões necessárias
Console
O console do Google Cloud não é compatível com a composição de objetos. Em vez disso, use o Google Cloud CLI.
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.
Criar um objeto composto
Console
O console do Google Cloud não é compatível com a composição de objetos. Em vez disso, use o Google Cloud CLI.
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
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
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 OAUTH2_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.OAUTH2_TOKEN
é o token de acesso gerado anteriormente no guia.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
- Receba um token de acesso de autorização do OAuth 2.0 Playground. Configure o Playground para usar suas credenciais do OAuth. Para ver instruções, consulte Autenticação de APIs.
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 OAUTH2_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.OAUTH2_TOKEN
é o token de acesso gerado anteriormente no guia.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.