En esta página, se explica cómo configurar el control de versiones de objetos y se proporcionan ejemplos sobre cómo usarlo. Si quieres obtener una descripción de esta característica, consulta la sección relativa al control de versiones de objetos.
Configurar el control de versiones de objetos
En las siguientes secciones, se muestra cómo activar y desactivar el control de versiones de objetos con la herramienta gsutil, la API JSON y la API XML. Actualmente, el control de versiones de objetos no puede realizarse mediante la consola de Google Cloud Platform.
Habilitar el control de versiones de objetos
Si quieres habilitar el control de versiones de objetos en un segmento, sigue estos pasos:
gsutil
Usa el comando gsutil versioning set on
y sustituye [VALUES_IN_BRACKETS]
por los valores correspondientes:
gsutil versioning set on gs://[BUCKET_NAME]
APIs REST
API JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Crea un archivo .json que contenga la siguiente información:
- Usa
cURL
para llamar a la API JSON con una petición de segmentoPATCH
y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X PATCH --data-binary @[JSON_FILE_NAME].json \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ -H "Content-Type: application/json" \ "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"
{ "versioning": { "enabled": true } }
API XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Crea un archivo .xml que contenga la siguiente información y sustituye
[VALUES_IN_BRACKETS]
por los valores correspondientes:<VersioningConfiguration> <Status>Enabled</Status> </VersioningConfiguration>
- Usa
cURL
para llamar a la API XML con una petición de segmentoPUT
y el parámetro de cadena de consultaversioning
, y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X PUT --data-binary @[XML_FILE_NAME].xml \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://storage.googleapis.com/[BUCKET_NAME]?versioning"
Inhabilitar el control de versiones de objetos
Si quieres inhabilitar el control de versiones de objetos en un segmento, sigue estos pasos:
gsutil
Usa el comando gsutil versioning set off
y sustituye [VALUES_IN_BRACKETS]
por los valores correspondientes:
gsutil versioning set off gs://[BUCKET_NAME]
APIs REST
API JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Crea un archivo .json que contenga la siguiente información:
- Usa
cURL
para llamar a la API JSON con una petición de segmentoPATCH
y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X PATCH --data-binary @[JSON_FILE_NAME].json \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ -H "Content-Type: application/json" \ "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"
{ "versioning": { "enabled": false } }
API XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Crea un archivo .xml que contenga la siguiente información y sustituye
[VALUES_IN_BRACKETS]
por los valores correspondientes:<VersioningConfiguration> <Status>Suspended</Status> </VersioningConfiguration>
- Usa
cURL
para llamar a la API XML con una petición de segmentoPUT
y el parámetro de cadena de consultaversioning
, y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X PUT --data-binary @[XML_FILE_NAME].xml \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://storage.googleapis.com/[BUCKET_NAME]?versioning"
Comprobar si el control de versiones de objetos está habilitado
Si quieres comprobar si el control de versiones de objetos está habilitado en un segmento, sigue estos pasos:
gsutil
Usa el comando gsutil versioning get
y sustituye [VALUES_IN_BRACKETS]
por los valores correspondientes:
gsutil versioning get gs://[BUCKET_NAME]
Si el control de versiones de objetos está habilitado, la respuesta se asimilará al siguiente ejemplo:
gs://[BUCKET_NAME]: Enabled
APIs REST
API JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Usa
cURL
para llamar a la API JSON con una petición de segmentoGET
y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"
API XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Usa
cURL
para llamar a la API XML con una petición de segmentoGET
y el parámetro de cadena de consultaversioning
, y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X GET \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://storage.googleapis.com/[BUCKET_NAME]?versioning"
Trabajar con objetos con versiones
En las siguientes secciones, se indica cómo trabajar con objetos con versiones. Si quieres ver un ejemplo detallado sobre cómo trabajar con el control de versiones de objetos, consulta el ejemplo de control de versiones de objetos.
Mostrar versiones de objetos archivadas
Si quieres mostrar las versiones publicadas y archivadas de un objeto, y ver sus números de generation
, sigue estos pasos:
gsutil
Usa el comando gsutil ls -a
y sustituye [VALUES_IN_BRACKETS]
por los valores correspondientes:
gsutil ls -a gs://[BUCKET_NAME]
La respuesta tiene este aspecto:
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER1] gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER2] gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER3] ...
APIs REST
API JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Usa
cURL
para llamar a la API JSON con una petición de objetoLIST
y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o?versions=true"
Las versiones archivadas de los objetos tienen la propiedad timeDeleted
.
API XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Usa
cURL
para llamar a la API XML con una petición de segmentoGET
y el parámetro de cadena de consultaversions
, y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://storage.googleapis.com/[BUCKET_NAME]?versions"
Hay algunas diferencias en los resultados de la petición GET
al usar el parámetro de consulta versions
en comparación con cuando no se utiliza. En concreto, Cloud Storage devuelve la siguiente información cuando se incluye el parámetro de consulta versions
en la petición:
- Un elemento
Version
que contiene información sobre cada objeto. - Un elemento
DeletedTime
que contiene la hora en que se archivó el objeto (eliminado o sobrescrito). - Un elemento
IsLatest
que indica si el objeto específico tiene la versión más reciente. - Se devuelve un elemento
NextGenerationMarker
si la lista de objetos es parcial, lo que se produce cuando se tienen muchas versiones de objetos en un segmento. Usa el valor de este elemento en el parámetro de consultagenerationmarker
de las peticiones posteriores para continuar desde el último punto. El parámetro de consultagenerationmarker
se utiliza de la misma manera que el parámetro de consultamarker
para desplazarse por una lista de un segmento sin versión.
Acceder a versiones de objetos archivadas
Si quieres acceder a una versión archivada de un objeto, sigue estos pasos:
gsutil
Añade el número de
generation
del objeto archivado al nombre del objeto y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:[OBJECT_NAME]#[GENERATION_NUMBER]
Usa la cadena del paso 1 y continúa como lo harías normalmente con un objeto publicado.
APIs REST
API JSON
- Añade el número de
generation
del objeto archivado al URI del objeto y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
- Usa el URI del paso 1 y continúa como lo harías normalmente con un objeto publicado.
API XML
- Añade el número de
generation
del objeto archivado al URI del objeto y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
- Usa el URI del paso 1 y continúa como lo harías normalmente con un objeto publicado.
Copiar versiones de objetos archivadas
Si quieres copiar una versión archivada de un objeto, sigue estos pasos:
gsutil
Usa el comando gsutil cp
y sustituye [VALUES_IN_BRACKETS]
por los valores correspondientes:
gsutil cp gs://[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]#[GENERATION_NUMBER] gs://[DESTINATION_BUCKET_NAME]/[DESTINATION_OBJECT_NAME]
Si la acción se realiza correctamente, la respuesta tendrá este aspecto:
Operation completed over 1 objects/58.8 KiB.
APIs REST
API JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Usa
cURL
para llamar a la API JSON con una petición de objetoPOST
y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X POST \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ -H "Content-Length: 0" \ "https://www.googleapis.com/upload/storage/v1/b/[SOURCE_BUCKET_NAME]/o/[SOURCE_OBJECT_NAME]/rewriteTo/b/[DESTINATION_BUCKET_NAME]/o/[NAME_OF_COPY]?sourceGeneration=[GENERATION_NUMBER]"
API XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Usa
cURL
para llamar a la API XML con una petición de objetoPUT
y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X PUT \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ -H "x-goog-copy-source: [SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]" \ -H "x-goog-copy-source-generation:[GENERATION_NUMBER]" \ "https://storage.googleapis.com/[DESTINATION_BUCKET_NAME]/[NAME_OF_COPY]"
Eliminar versiones de objetos archivadas
Si quieres eliminar una versión archivada de un objeto, sigue estos pasos:
gsutil
Usa el comando gsutil rm
y sustituye [VALUES_IN_BRACKETS]
por los valores correspondientes:
gsutil rm gs://[BUCKET_NAME]/[OBJECT_NAME]#[GENERATION_NUMBER]
Si la acción se realiza correctamente, la respuesta tendrá este aspecto:
Operation completed over 1 objects.
APIs REST
API JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Usa
cURL
para llamar a la API JSON con una petición de objetoDELETE
y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X DELETE \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"
API XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
- Usa
cURL
para llamar a la API XML con una petición de objetoDELETE
y sustituye[VALUES_IN_BRACKETS]
por los valores correspondientes:curl -X DELETE \ -H "Authorization: Bearer [OAUTH2_TOKEN]" \ "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"