Usar el control de versiones de objetos

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

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Crea un archivo .json que contenga la siguiente información:
  3. {
      "versioning": {
        "enabled": true
      }
    }
  4. Usa cURL para llamar a la API JSON con una petición de segmento PATCH 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"

API XML

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Crea un archivo .xml que contenga la siguiente información y sustituye [VALUES_IN_BRACKETS] por los valores correspondientes:
    <VersioningConfiguration>
      <Status>Enabled</Status>
    </VersioningConfiguration>
  3. Usa cURL para llamar a la API XML con una petición de segmento PUT y el parámetro de cadena de consulta versioning, 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

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Crea un archivo .json que contenga la siguiente información:
  3. {
      "versioning": {
        "enabled": false
      }
    }
  4. Usa cURL para llamar a la API JSON con una petición de segmento PATCH 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"

API XML

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Crea un archivo .xml que contenga la siguiente información y sustituye [VALUES_IN_BRACKETS] por los valores correspondientes:
    <VersioningConfiguration>
      <Status>Suspended</Status>
    </VersioningConfiguration>
  3. Usa cURL para llamar a la API XML con una petición de segmento PUT y el parámetro de cadena de consulta versioning, 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

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API JSON con una petición de segmento GET 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

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API XML con una petición de segmento GET y el parámetro de cadena de consulta versioning, 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

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API JSON con una petición de objeto LIST 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

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API XML con una petición de segmento GET y el parámetro de cadena de consulta versions, 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 consulta generationmarker de las peticiones posteriores para continuar desde el último punto. El parámetro de consulta generationmarker se utiliza de la misma manera que el parámetro de consulta marker 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

  1. 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]

  2. Usa la cadena del paso 1 y continúa como lo harías normalmente con un objeto publicado.

APIs REST

API JSON

  1. 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]
  2. Usa el URI del paso 1 y continúa como lo harías normalmente con un objeto publicado.

API XML

  1. 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]
  2. 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

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API JSON con una petición de objeto POST 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

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API XML con una petición de objeto PUT 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

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API JSON con una petición de objeto DELETE 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

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura el playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API XML con una petición de objeto DELETE 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]"

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.