Usa el control de versiones de objetos

En esta página, se describe cómo configurar el control de versiones de objetos y hay ejemplos sobre el uso del control de versiones de objetos. Para una descripción de esta característica, consulta Control de versiones de objetos.

Configura el control de versiones de objetos

Las siguientes secciones muestran cómo activar y desactivar el control de versiones de objetos con la herramienta gsutil, API de JSON, y la API de XML. El control de versiones de objetos no se puede controlar actualmente con Google Cloud Platform Console.

Habilita el control de versiones de objetos

Sigue los pasos a continuación, para habilitar el control de versiones de objetos en un depósito:

gsutil

Usa el comando gsutil versioning set on y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:

gsutil versioning set on gs://[BUCKET_NAME]

API de REST

API de JSON

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura 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 de JSON con la solicitud de depósito PATCH y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    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 de XML

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Crea un archivo .xml que contenga la siguiente información y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    <VersioningConfiguration>
      <Status>Enabled</Status>
    </VersioningConfiguration>
  3. Usa cURL para llamar a la API de XML con la solicitud de depósito PUT y el parámetro de string de consulta versioning y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

Una vez que el control de versiones de objetos está habilitado, Cloud Storage crea una versión archivada de un objeto cada vez que reemplazas o borras la versión publicada del objeto.

Inhabilita el control de versiones de objetos

Sigue los pasos a continuación para inhabilitar el control de versiones de objetos en un depósito:

gsutil

Usa el comando gsutil versioning set off y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:

gsutil versioning set off gs://[BUCKET_NAME]

API de REST

API de JSON

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura 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 de JSON con la solicitud de depósito PATCH y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    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 de XML

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Crea un archivo .xml que contenga la siguiente información y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    <VersioningConfiguration>
      <Status>Suspended</Status>
    </VersioningConfiguration>
  3. Usa cURL para llamar a la API de XML con la solicitud de depósito PUT y el parámetro de string de consulta versioning y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    curl -X PUT --data-binary @[XML_FILE_NAME].xml \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

Comprueba si el control de versiones de objetos está habilitado

Sigue los pasos a continuación para comprobar si el control de versiones de objetos está habilitado en un depósito:

gsutil

Usa el comando gsutil versioning get y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:

gsutil versioning get gs://[BUCKET_NAME]

Si el control de versiones de objetos está habilitado, la respuesta es similar a la siguiente:

gs://[BUCKET_NAME]: Enabled

API de REST

API de JSON

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API de JSON con la solicitud de depósito GET y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]?fields=versioning"

API de XML

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API de XML con la solicitud de depósito GET y el parámetro de string de consulta versioning y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    curl -X GET \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versioning"

Trabaja con el control de versiones de objetos

Las siguientes secciones muestran cómo trabajar con el control de versiones de objetos. Para obtener un ejemplo detallado de cómo trabajar con el control de versiones de objetos, consulta Ejemplo de control de versiones de objetos.

Listado de control de versiones de objetos

Sigue los pasos a continuación para listar las versiones publicadas y archivadas de un objeto y ver sus números de generation:

gsutil

Usa el comando gsutil ls -a y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:

gsutil ls -a gs://[BUCKET_NAME]

La respuesta se ve como el siguiente ejemplo:

gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER1]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER2]
gs://[BUCKET_NAME]/[OBJECT_NAME1]#[GENERATION_NUMBER3]
...

API de REST

API de JSON

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API de JSON con una solicitud de objeto LIST y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o?versions=true"

Las versiones archivadas de objetos tienen una propiedad "timeDeleted".

API de XML

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API de XML con la solicitud de depósito GET y el parámetro de string de consulta versions, reemplaza [VALUES_IN_BRACKETS] con los valores adecuados:
    curl -X GET -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]?versions"

Hay algunas diferencias en los resultados de la solicitud GET cuando se usa el parámetro de consulta versions en comparación con cuando no se usa. Específicamente, Cloud Storage muestra la siguiente información cuando incluyes un parámetro de consulta de versions en tu solicitud:

  • Un elemento de Version que contiene información sobre cada objeto.
  • Un elemento DeletedTime que contiene la hora en que se archivó (borró o sobrescribió) el objeto.
  • Un elemento IsLatest que indica si el objeto específico es la última versión.
  • Un elemento NextGenerationMarker se muestra si la lista de objetos es una lista parcial, esto pasa cuando tienes muchas versiones de objetos en un depósito. Usa el valor de este elemento en el parámetro de consulta generationmarker en las solicitudes posteriores para reanudar desde tu último punto. El parámetro de consulta generationmarker se usa de la misma forma que se usa el parámetro de consulta marker para recorrer una lista de un depósito no versionado.

Accede al control de versiones de objetos archivado

Sigue los pasos a continuación para acceder a una versión archivada de un objeto:

gsutil

  1. Agrega el número de generation del objeto archivado al nombre del objeto, para ello reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:

    [OBJECT_NAME]#[GENERATION_NUMBER]
  2. Usa la string del paso 1, procede como normalmente lo harías con un objeto público.

API de REST

API de JSON

  1. Agrega el número de generation del objeto archivado a la URI del objeto y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. Usa la URI del paso 1, procede como normalmente lo harías con un objeto público.

API de XML

  1. Agrega el número de generation del objeto archivado a la URI del objeto y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]
  2. Usa la URI del paso 1, procede como normalmente lo harías con un objeto público.

Copia el control de versiones de objetos

Sigue los pasos a continuación para copiar el control de versiones de objetos:

gsutil

Usa el comando gsutil cp y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:

gsutil cp gs://[SOURCE_BUCKET_NAME]/[SOURCE_OBJECT_NAME]#[GENERATION_NUMBER] gs://[DESTINATION_BUCKET_NAME]/[DESTINATION_OBJECT_NAME]

Si es correcto, la respuesta se parece al siguiente ejemplo:

Operation completed over 1 objects/58.8 KiB.

API de REST

API de JSON

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API de JSON con una solicitud de objeto POST y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    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 de XML

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API de XML con una solicitud de objeto PUT y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    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]"

Borra el control de versiones de objetos

Sigue los pasos a continuación para borrar a una versión archivada de un objeto:

gsutil

Usa el comando gsutil rm y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:

gsutil rm gs://[BUCKET_NAME]/[OBJECT_NAME]#[GENERATION_NUMBER]

Si es correcto, la respuesta se parece al siguiente ejemplo:

Operation completed over 1 objects.

API de REST

API de JSON

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API de JSON con una solicitud de objeto DELETE y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://www.googleapis.com/storage/v1/b/[BUCKET_NAME]/o/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"

API de XML

  1. Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
  2. Usa cURL para llamar a la API de XML con una solicitud de objeto DELETE y reemplaza [VALUES_IN_BRACKETS] por los valores adecuados:
    curl -X DELETE \
        -H "Authorization: Bearer [OAUTH2_TOKEN]" \
        "https://storage.googleapis.com/[BUCKET_NAME]/[OBJECT_NAME]?generation=[GENERATION_NUMBER]"
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.