Esta página mostra como compor objetos do Cloud Storage num único objeto. Um pedido 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 no pedido.
Tenha em atenção o seguinte ao compor objetos:
- Os objetos de origem não são afetados pelo processo de composição. Se se destinarem a ser temporários, tem de eliminá-los assim que concluir com êxito a composição.
Funções necessárias
Para receber as autorizações de que precisa para compor objetos, peça ao seu administrador para lhe conceder a função de IAM de utilizador de objetos de armazenamento (roles/storage.objectUser
) no contentor. Esta função predefinida contém as
autorizações necessárias para compor objetos. Para ver as autorizações exatas necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
storage.objects.create
storage.objects.delete
- Esta autorização só é necessária se quiser dar ao objeto que compõe o mesmo nome que um objeto que já existe no contentor.
storage.objects.get
storage.objects.list
- Esta autorização só é necessária se quiser usar caracteres universais para compor objetos com um prefixo comum sem ter de listar cada objeto separadamente no seu comando da CLI Google Cloud.
Se quiser definir uma configuração de retenção para o objeto que compõe, também precisa da autorização storage.objects.setRetention
. Para
receber esta autorização, peça ao seu administrador para lhe conceder a função de administrador de objetos de armazenamento (roles/storage.objectAdmin
) em vez da função de utilizador de objetos de armazenamento (roles/storage.objectUser
).
Também pode obter estas autorizações com outras funções predefinidas ou funções personalizadas.
Para ver informações sobre a concessão de funções em contentores, consulte o artigo Use o IAM com contentores.
Crie um objeto composto
Linha de comandos
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
Onde:
BUCKET_NAME
é o nome do contentor que contém os objetos de origem.SOURCE_OBJECT_1
eSOURCE_OBJECT_2
são os nomes dos objetos de origem a usar na composição de objetos.COMPOSITE_OBJECT_NAME
é o nome que está a dar ao resultado da composição do objeto.
Bibliotecas cliente
C++
Para mais informações, consulte a documentação de referência da API C++ do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
C#
Para mais informações, consulte a documentação de referência da API C# do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Go
Para mais informações, consulte a documentação de referência da API Go do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Java
Para mais informações, consulte a documentação de referência da API Java do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
PHP
Para mais informações, consulte a documentação de referência da API PHP do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Python
Para mais informações, consulte a documentação de referência da API Python do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby do Cloud Storage.
Para se autenticar no Cloud Storage, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para bibliotecas de cliente.
Antes de executar exemplos de código, defina a variável GOOGLE_CLOUD_UNIVERSE_DOMAIN
environment
como s3nsapis.fr
.
APIs REST
API JSON
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um ficheiro JSON que contenha as seguintes informações:
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" } }
Onde:
Use
cURL
para chamar a API JSON com um pedido 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"
Onde:
JSON_FILE_NAME
é o nome do ficheiro que criou no passo anterior.BUCKET_NAME
é o nome do contentor que contém os objetos de origem.COMPOSITE_OBJECT_NAME
é o nome que está a dar ao resultado da composição do objeto.
Se for bem-sucedido, a resposta é um recurso de objeto para o objeto composto resultante.
API XML
Ter a CLI gcloud instalada e inicializada, o que lhe permite gerar um token de acesso para o cabeçalho
Authorization
.Crie um ficheiro XML que contenha as seguintes informações:
<ComposeRequest> <Component> <Name>SOURCE_OBJECT_1</Name> </Component> <Component> <Name>SOURCE_OBJECT_2</Name> </Component> </ComposeRequest>
Onde:
SOURCE_OBJECT_1
eSOURCE_OBJECT_2
são os nomes dos objetos de origem a usar na composição de objetos.
Use
cURL
para chamar a API XML com um pedido dePUT
objeto 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"
Onde:
XML_FILE_NAME
é o nome do ficheiro que criou no passo anterior.COMPOSITE_OBJECT_CONTENT_TYPE
é o Content-Type do objeto composto resultante.BUCKET_NAME
é o nome do contentor que contém os objetos de origem.COMPOSITE_OBJECT_NAME
é o nome que está a dar ao resultado da composição do objeto.
Se for bem-sucedido, é devolvido um corpo da resposta vazio.
O que se segue?
- Saiba mais acerca da composição de objetos.
- Saiba como usar as condições prévias do pedido para evitar condições de concorrência.