En esta página, se describe cómo configurar el control de versiones de objetos y se dan ejemplos sobre su uso.
Configura el control de versiones de objetos
Habilita el control de versiones de objetos
Para habilitar el control de versiones de objetos en un bucket, sigue estos pasos:
Console
No se puede controlar el control de versiones de objetos con Google Cloud Console. Usa gsutil o las bibliotecas cliente en su lugar.
gsutil
Usa el comando gsutil versioning set on
:
gsutil versioning set on gs://BUCKET_NAME
En el ejemplo anterior, BUCKET_NAME
es el nombre del depósito correspondiente. Por ejemplo, my-bucket
.
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
API de REST
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Crea un archivo
.json
que contenga la siguiente información:{ "versioning": { "enabled": true } }
Usa
cURL
para llamar a la API de JSON con una solicitud de depósitoPATCH
:curl -X PATCH --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
Donde:
JSON_FILE_NAME
es el archivo que creaste en el paso 2.OAUTH2_TOKEN
es el token de acceso que creaste en el paso 1.BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
.
API de XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
Crea un archivo
.xml
que contenga la siguiente información:<VersioningConfiguration> <Status>Enabled</Status> </VersioningConfiguration>
Usa
cURL
para llamar a la API de XML con una solicitud de bucketPUT
y el parámetro de string de consultaversioning
curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
En los que:
XML_FILE_NAME
es el archivo que creaste en el paso 2.OAUTH2_TOKEN
es el token de acceso que creaste en el paso 1.BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
.
Una vez que está habilitado el control de versiones de objetos, cada vez que se reemplaza o borra una versión de objeto activa, esa versión se convierte en una versión no actual.
Inhabilita el control de versiones de objetos
Sigue los pasos a continuación para inhabilitar el control de versiones de objetos en un bucket:
Console
No se puede controlar el control de versiones de objetos con Google Cloud Console. Usa gsutil o las bibliotecas cliente en su lugar.
gsutil
Usa el comando gsutil versioning set off
:
gsutil versioning set off gs://BUCKET_NAME
En el ejemplo anterior, BUCKET_NAME
es el nombre del depósito correspondiente. Por ejemplo, my-bucket
.
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
API de REST
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Crea un archivo
.json
que contenga la siguiente información:{ "versioning": { "enabled": false } }
Usa
cURL
para llamar a la API de JSON con una solicitud de depósitoPATCH
:curl -X PATCH --data-binary @JSON_FILE_NAME.json \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
Donde:
JSON_FILE_NAME
es el archivo que creaste en el paso 2.OAUTH2_TOKEN
es el token de acceso que creaste en el paso 1.BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
.
API de XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus propias credenciales de OAuth.
Crea un archivo
.xml
que contenga la siguiente información:<VersioningConfiguration> <Status>Suspended</Status> </VersioningConfiguration>
Usa
cURL
para llamar a la API de XML con una solicitud de bucketPUT
y el parámetro de string de consultaversioning
curl -X PUT --data-binary @XML_FILE_NAME.xml \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
En los que:
XML_FILE_NAME
es el archivo que creaste en el paso 2.OAUTH2_TOKEN
es el token de acceso que creaste en el paso 1.BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
.
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 bucket:
Console
No se puede verificar el control de versiones de objetos con Google Cloud Console. Usa gsutil o las bibliotecas cliente en su lugar.
gsutil
Usa el comando gsutil versioning get
:
gsutil versioning get gs://BUCKET_NAME
En el ejemplo anterior, BUCKET_NAME
es el nombre del depósito correspondiente. Por ejemplo, my-bucket
.
Si el control de versiones de objetos está habilitado, la respuesta es similar a la siguiente:
gs://my-bucket: Enabled
API de REST
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de JSON con una solicitud de bucketGET
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
En la que:
OAUTH2_TOKEN
es el token de acceso que creaste en el paso 1.BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
.
API de XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de XML con una solicitud de bucketGET
y el parámetro de string de consultaversioning
curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
En los que:
OAUTH2_TOKEN
es el token de acceso que creaste en el paso 1.BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
.
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.
Enumera las versiones no actuales de objetos
Para enumerar las versiones publicadas y no actuales de un objeto y ver sus números de generation
, haz lo siguiente:
Console
No se pueden administrar las versiones de objetos con Google Cloud Console. Usa gsutil o las bibliotecas cliente en su lugar.
gsutil
Usa el comando gsutil ls -a
:
gsutil ls -a gs://BUCKET_NAME
En el ejemplo anterior, BUCKET_NAME
es el nombre del depósito correspondiente. Por ejemplo, my-bucket
.
La respuesta se ve como el siguiente ejemplo:
gs://BUCKET_NAME/OBJECT_NAME1#GENERATION_NUMBER1 gs://BUCKET_NAME/OBJECT_NAME2#GENERATION_NUMBER2 gs://BUCKET_NAME/OBJECT_NAME3#GENERATION_NUMBER3 ...
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
API de REST
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de JSON con una solicitud de objetoLIST
:curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?versions=true"
En la que:
OAUTH2_TOKEN
es el token de acceso que creaste en el paso 1.BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
.
Las versiones no actuales de objetos tienen una propiedad timeDeleted
.
API de XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de XML con una solicitud de bucketGET
y el parámetro de string de consultaversions
curl -X GET \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME?versions"
En los que:
OAUTH2_TOKEN
es el token de acceso que creaste en el paso 1.BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
.
Hay algunas diferencias en los resultados de la solicitud GET
cuando se usa el parámetro de consulta versions
.
En particular, Cloud Storage muestra la siguiente información cuando incluyes un parámetro de consulta versions
en la solicitud:
- Un elemento
Version
que contiene información sobre cada objeto. - Un elemento
DeletedTime
que contiene la hora en la que la versión del objeto pasó a ser no actual (se borró o se reemplazó). - Un elemento IsLatest que indica si el objeto específico es la versión más reciente.
- Se muestra un elemento
NextGenerationMarker
si la lista de objetos es parcial, lo que ocurre cuando tienes muchas versiones de objetos en un bucket. Usa el valor de este elemento en el parámetro de consultagenerationmarker
de las solicitudes posteriores para reanudar desde el último punto. El parámetro de consultagenerationmarker
se usa de la misma manera que se usa el parámetromarker
para navegar por una lista de un bucket sin control de versiones.
Accede a las versiones no actuales de objetos
Para usar la versión no actual de un objeto cuando realizas tareas como descargar el objeto, ver sus metadatos o actualizar sus metadatos, haz lo siguiente:
Console
No se pueden administrar las versiones de objetos con Google Cloud Console. Usa gsutil o las bibliotecas cliente en su lugar.
gsutil
Agrega el número de
generation
de la versión no actual al nombre del objeto:OBJECT_NAME#GENERATION_NUMBER
En el que:
OBJECT_NAME
es el nombre de la versión no actual. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual. Por ejemplo,1560468815691234
.
Con la string del paso 1, procede como lo harías con la versión publicada del objeto.
API de REST
API de JSON
Agrega el número de
generation
de la versión no actual al URI del objeto:https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER
En el que:
BUCKET_NAME
es el nombre del bucket que contiene la versión no actual. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre de la versión no actual. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual. Por ejemplo,1560468815691234
.
Con el URI del paso 1, procede como lo harías con la versión publicada del objeto.
API de XML
Agrega el número de
generation
de la versión no actual al URI del objeto:https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER
En el que:
BUCKET_NAME
es el nombre del bucket que contiene la versión no actual. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre de la versión no actual. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual. Por ejemplo,1560468815691234
.
Con el URI del paso 1, procede como lo harías con la versión publicada del objeto.
Copia las versiones no actuales de objetos
Para copiar una versión no actual de un objeto, haz lo siguiente:
Console
No se pueden administrar las versiones de objetos con Google Cloud Console. Usa gsutil o las bibliotecas cliente en su lugar.
gsutil
Usa el comando gsutil cp
:
gsutil cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME#GENERATION_NUMBER gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME
En el que:
SOURCE_BUCKET_NAME
es el nombre del bucket que contiene la versión no actual que deseas copiar. Por ejemplo,my-bucket
.SOURCE_OBJECT_NAME
es el nombre de la versión no actual que deseas copiar. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que deseas copiar. Por ejemplo,1560468815691234
.DESTINATION_BUCKET_NAME
es el nombre del bucket en el que deseas copiar la versión no actual. Por ejemplo,my-bucket
.DESTINATION_OBJECT_NAME
es el nombre de la copia de la versión no actual. Por ejemplo,pets/shiba.png
.
Si es correcto, la respuesta se parece al siguiente ejemplo:
Operation completed over 1 objects/58.8 KiB.
También puedes copiar todas las versiones de un objeto con -A flag
en tu comando cp
.
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
API de REST
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de JSON con una solicitud de objetoPOST
:curl -X POST \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Length: 0" \ "https://storage.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"
En el ejemplo anterior, se ilustra lo siguiente:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.SOURCE_BUCKET_NAME
es el nombre del bucket que contiene la versión no actual que deseas copiar. Por ejemplo,my-bucket
.SOURCE_OBJECT_NAME
es el nombre de la versión no actual que deseas copiar. Por ejemplo,pets/dog.png
.DESTINATION_BUCKET_NAME
es el nombre del bucket en el que deseas copiar la versión no actual. Por ejemplo,my-bucket
.NAME OF COPY
es el nombre de la copia de la versión no actual. Por ejemplo,pets/shiba.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que deseas copiar. Por ejemplo,1560468815691234
.
API de XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de XML con una solicitud de objetoPUT
: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"
En la que:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.SOURCE_BUCKET_NAME
es el nombre del bucket que contiene la versión no actual que deseas copiar. Por ejemplo,my-bucket
.SOURCE_OBJECT_NAME
es el nombre de la versión no actual que deseas copiar. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que deseas copiar. Por ejemplo,1560468815691234
.DESTINATION_BUCKET_NAME
es el nombre del bucket en el que deseas copiar la versión no actual. Por ejemplo,my-bucket
.NAME OF COPY
es el nombre de la copia de la versión no actual. Por ejemplo,pets/shiba.png
.
Borra las versiones no actuales de objetos
Para borrar una versión no actual de un objeto, haz lo siguiente:
Console
No se pueden administrar las versiones de objetos con Google Cloud Console. Usa gsutil o las bibliotecas cliente en su lugar.
gsutil
Usa el comando gsutil rm
:
gsutil rm gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
En el que:
BUCKET_NAME
es el nombre del bucket que contiene la versión no actual que deseas borrar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre de la versión no actual que deseas borrar. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que deseas borrar. Por ejemplo,1560468815691234
.
Si se ejecuta de forma correcta, la respuesta se ve como el siguiente ejemplo:
Operation completed over 1 objects.
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
API de REST
API de JSON
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de JSON con una solicitud de objetoDELETE
:curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER"
En el ejemplo anterior, se ilustra lo siguiente:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.BUCKET_NAME
es el nombre del bucket que contiene la versión no actual que deseas borrar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre de la versión no actual que deseas borrar. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que deseas borrar. Por ejemplo,1560468815691234
.
API de XML
- Obtén un token de acceso de autorización de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth.
Usa
cURL
para llamar a la API de XML con una solicitud de objetoDELETE
:curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER"
En la que:
OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.BUCKET_NAME
es el nombre del bucket que contiene la versión no actual que deseas borrar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre de la versión no actual que deseas borrar. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que deseas borrar. Por ejemplo,1560468815691234
.
¿Qué sigue?
- Obtén más información sobre el control de versiones de objetos.
- Aprende a usar la Administración del ciclo de vida de los objetos para administrar sus versiones de forma automática.