En esta página, se muestra cómo componer objetos de Cloud Storage en un solo objeto. Una solicitud de composición toma entre 1 y 32 objetos y crea un objeto compuesto nuevo. El objeto compuesto es una concatenación de los objetos de origen en el orden en que se especificaron en la solicitud.
Ten en cuenta lo siguiente cuando compones objetos:
- El proceso de composición no afecta a los objetos de origen. Si están destinados a ser temporales, debes borrarlos una vez que hayas completado la composición con éxito.
- Debido a que otras clases de almacenamiento están sujetas a tarifas de eliminación temprana, siempre debes usar Standard Storage para los objetos temporales.
Permisos necesarios
Consola
La consola de Google Cloud no admite la composición de objetos. En su lugar, usa Google Cloud CLI.
Línea de comandos
Para completar esta guía con una utilidad de línea de comandos, debes tener los permisos de IAM adecuados. Si los buckets a los que deseas acceder existen en un proyecto que no creaste, tal vez necesites que el propietario del proyecto te otorgue un rol con los permisos necesarios.
Si deseas obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para los comandos de gcloud storage
.
Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.
Bibliotecas cliente
Para completar esta guía con las bibliotecas cliente de Cloud Storage, debes tener los permisos de IAM adecuados. Si los buckets a los que deseas acceder existen en un proyecto que no creaste, tal vez necesites que el propietario del proyecto te otorgue un rol con los permisos necesarios.
A menos que se indique lo contrario, las solicitudes de la biblioteca cliente se realizan mediante la API de JSON y requieren permisos, como se indica en Permisos de IAM para métodos de JSON. Para ver qué métodos de la API de JSON se invocan cuando realizas solicitudes a través de una biblioteca cliente, registra las solicitudes sin procesar.
Para obtener una lista de los roles de IAM relevantes, consulta Roles de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.
APIs de REST
API de JSON
Para completar esta guía con la API de JSON, debes tener los permisos de IAM adecuados. Si los buckets a los que deseas acceder existen en un proyecto que no creaste, tal vez necesites que el propietario del proyecto te otorgue un rol con los permisos necesarios.
Si deseas obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para métodos JSON.
Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.
Crea un objeto compuesto
Console
La consola de Google Cloud no admite la composición de objetos. En su lugar, usa Google Cloud CLI.
Línea de comandos
Usa el 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
En el ejemplo anterior, se ilustra lo siguiente:
BUCKET_NAME
es el nombre del bucket que contiene los objetos de origen.SOURCE_OBJECT_1
ySOURCE_OBJECT_2
son los nombres de los objetos de origen que se usarán en la composición del objeto.COMPOSITE_OBJECT_NAME
es el nombre que le asignas al resultado de la composición del objeto.
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
API de REST
API de JSON
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Crea un archivo JSON que contenga la siguiente información:
{ "sourceObjects": [ { "name": "SOURCE_OBJECT_1" }, { "name": "SOURCE_OBJECT_2" } ], "destination": { "contentType": "COMPOSITE_OBJECT_CONTENT_TYPE" } }
Aquí:
SOURCE_OBJECT_1
ySOURCE_OBJECT_2
son los nombres de los objetos de origen que se usarán en la composición del objeto.COMPOSITE_OBJECT_CONTENT_TYPE
es el tipo de contenido del objeto compuesto resultante.
Usa
cURL
para llamar a la API de JSON con una solicitud de objetoPOST
: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"
En el ejemplo anterior, se ilustra lo siguiente:
JSON_FILE_NAME
es el nombre del archivo que creaste en el paso anterior.OAUTH2_TOKEN
es el token de acceso que generaste en pasos anteriores de la guía.BUCKET_NAME
es el nombre del bucket que contiene los objetos de origen.COMPOSITE_OBJECT_NAME
es el nombre que le asignas al resultado de la composición del objeto.
Si se ejecuta de forma correcta, la respuesta es un recurso de objeto para el objeto compuesto resultante.
API de XML
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Crea un archivo XML que contenga la siguiente información:
<ComposeRequest> <Component> <Name>SOURCE_OBJECT_1</Name> </Component> <Component> <Name>SOURCE_OBJECT_2</Name> </Component> </ComposeRequest>
Aquí:
SOURCE_OBJECT_1
ySOURCE_OBJECT_2
son los nombres de los objetos de origen que se usarán en la composición del objeto.
Usa
cURL
para llamar a la API de XML con una solicitud de objetoPUT
y el 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"
En el ejemplo anterior, se ilustra lo siguiente:
XML_FILE_NAME
es el nombre del archivo que creaste en el paso anterior.OAUTH2_TOKEN
es el token de acceso que generaste en pasos anteriores de la guía.COMPOSITE_OBJECT_CONTENT_TYPE
es el tipo de contenido del objeto compuesto resultante.BUCKET_NAME
es el nombre del bucket que contiene los objetos de origen.COMPOSITE_OBJECT_NAME
es el nombre que le asignas al resultado de la composición del objeto.
Si se ejecuta de forma correcta, se muestra una respuesta vacía.
Próximos pasos
- Obtén más información sobre la composición de objetos.
- Aprende a usar condiciones previas de solicitud para evitar las condiciones de carrera.