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.
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 se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
C#
Saiba mais na documentação de referência C# da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Go
Saiba mais na documentação de referência Go da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Java
Saiba mais na documentação de referência Java da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Node.js
Saiba mais na documentação de referência Node.js da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
PHP
Saiba mais na documentação de referência PHP da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Python
Saiba mais na documentação de referência Python da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
Ruby
Saiba mais na documentação de referência Ruby da API Cloud Storage.
Para se autenticar no Cloud Storage, configure o Application Default Credentials. Saiba mais em Configurar a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável de ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN
como s3nsapis.fr
.
APIs REST
API JSON
Ter CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o 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:
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.s3nsapis.fr/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 CLI gcloud instalada e inicializada, o que permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um arquivo XML que contenha as seguintes informações:
<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
para chamar a API XML com uma solicitação de objetoPUT
que inclua o 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.s3nsapis.fr/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.