En esta página, se describe cómo habilitar, inhabilitar y verificar el estado del control de versiones de objetos en un bucket. Consulta Usa control de versiones de objetos para aprender a enumerar, restablecer y borrar los objetos que retiene el control de versiones de objetos.
Roles obligatorios
Para obtener los permisos que necesitas para configurar y administrar el control de versiones de los objetos
en un bucket, pídele a tu administrador que te otorgue el rol de IAM de
administrador de almacenamiento (roles/storage.admin
) en el bucket o en el proyecto
que contiene el bucket. Este rol predefinido contiene los permisos
necesarios para configurar y administrar el control de versiones de objetos de un bucket. Para ver los permisos
exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
storage.buckets.get
storage.buckets.update
storage.buckets.list
- Este permiso solo es necesario si planeas usar la consola de Google Cloud para ejecutar las instrucciones en esta página.
También puedes obtener estos permisos con roles personalizados.
Para obtener más información sobre cómo otorgar roles en los buckets, consulta Usa IAM con buckets. Para obtener información sobre cómo otorgar roles en proyectos, consulta Administra el acceso a los proyectos.
Configura el control de versiones de objetos en un bucket
Console
- En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
En la lista de buckets, haz clic en el nombre del bucket en el que deseas habilitar o inhabilitar el control de versiones de objetos.
Selecciona la pestaña Protección cerca de la parte superior de la página.
El estado actual del control de versiones de objetos se encuentra en la sección Object versioning.
En la sección Object versioning, haz clic en el estado actual para realizar cambios.
Aparecerá el diálogo Object versioning.
- Si habilitas el control de versiones de objetos y deseas minimizar los costos de almacenamiento, selecciona la casilla de verificación Add recommended lifecycle rules to manage version costs.
Haz clic en Confirmar.
Línea de comandos
Usa el comando gcloud storage buckets update
con la marca adecuada:
gcloud storage buckets update gs://BUCKET_NAME FLAG
Donde:
BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
.FLAG
es--versioning
para habilitar el control de versiones de objetos o--no-versioning
a fin de inhabilitarlo.
Si se realiza de forma correcta, la respuesta se verá como el ejemplo siguiente:
Updating gs://my-bucket/... Completed 1
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 bibliotecas cliente.
En el siguiente ejemplo, se habilita el control de versiones de objetos en un bucket:
En el siguiente ejemplo, se inhabilita el control de versiones de objetos en un bucket:
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 bibliotecas cliente.
En el siguiente ejemplo, se habilita el control de versiones de objetos en un bucket:
En el siguiente ejemplo, se inhabilita el control de versiones de objetos en un bucket:
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 bibliotecas cliente.
En el siguiente ejemplo, se habilita el control de versiones de objetos en un bucket:
En el siguiente ejemplo, se inhabilita el control de versiones de objetos en un bucket:
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 bibliotecas cliente.
En el siguiente ejemplo, se habilita el control de versiones de objetos en un bucket:
En el siguiente ejemplo, se inhabilita el control de versiones de objetos en un bucket:
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 bibliotecas cliente.
En el siguiente ejemplo, se habilita el control de versiones de objetos en un bucket:
En el siguiente ejemplo, se inhabilita el control de versiones de objetos en un bucket:
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 bibliotecas cliente.
En el siguiente ejemplo, se habilita el control de versiones de objetos en un bucket:
En el siguiente ejemplo, se inhabilita el control de versiones de objetos en un bucket:
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 bibliotecas cliente.
En el siguiente ejemplo, se habilita el control de versiones de objetos en un bucket:
En el siguiente ejemplo, se inhabilita el control de versiones de objetos en un bucket:
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 bibliotecas cliente.
En el siguiente ejemplo, se habilita el control de versiones de objetos en un bucket:
En el siguiente ejemplo, se inhabilita el control de versiones de objetos en un bucket:
API de REST
API de JSON
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization
.Crea un archivo JSON que contenga la siguiente información:
{ "versioning": { "enabled": STATE } }
En el que STATE es
true
ofalse
.Usa
cURL
para llamar a la API de JSON con una solicitud de bucketPATCH
:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
Donde:
JSON_FILE_NAME
es la ruta de acceso del archivo JSON que creaste en el paso 2.BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
API de XML
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization
.Crea un archivo XML que contenga la siguiente información:
<VersioningConfiguration> <Status>STATE</Status> </VersioningConfiguration>
En el que STATE es
Enabled
oSuspended
.Usa
cURL
para llamar a la API de XML con una solicitud de bucketPUT
y el parámetro de cadena de consultaversioning
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
Aquí:
XML_FILE_NAME
es la ruta de acceso del archivo XML que creaste en el paso 2.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.
Verifica 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
- En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
En la lista de buckets, el estado del control de versiones de objetos de cada bucket se encuentra en la columna Protección.
Si está habilitado, aparece el texto Object versioning.
Línea de comandos
Usa el comando gcloud storage buckets describe
con la marca --format
:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(versioning)"
En el ejemplo anterior, BUCKET_NAME
es el nombre del bucket cuyo estado deseas ver. Por ejemplo, my-bucket
.
Si se ejecuta de forma correcta y el control de versiones de objetos está habilitado, la respuesta es similar al siguiente ejemplo:
versioning: enabled: true
Si se ejecuta de forma correcta y el control de versiones de objetos no está habilitado, la respuesta se verá como el ejemplo siguiente:
null
API de REST
API de JSON
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API de JSON con una solicitud de bucketGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
En el que
BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
Si se ejecuta de forma correcta y el control de versiones de objetos está habilitado, la respuesta es similar al siguiente ejemplo:
{ "versioning": { "enabled": true } }
Si se ejecuta de forma correcta y el control de versiones de objetos no está habilitado, la respuesta se verá como el ejemplo siguiente:
{}
API de XML
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API de XML con una solicitud de bucketGET
y el parámetro de cadena de consultaversioning
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?versioning"
En el que
BUCKET_NAME
es el nombre del bucket correspondiente. Por ejemplo,my-bucket
Si se ejecuta de forma correcta y el control de versiones de objetos está habilitado, la respuesta es similar al siguiente ejemplo:
<VersioningConfiguration>
<Status>Enabled</Status>
</VersioningConfiguration>
Si se ejecuta de forma correcta y el control de versiones de objetos no está habilitado, la respuesta se verá como el ejemplo siguiente:
<VersioningConfiguration/>
¿Qué sigue?
- Obtén más información sobre el control de versiones de objetos.
- Obtén más información para trabajar con objetos no actuales.
- Aprende a usar la Administración del ciclo de vida de los objetos para administrar sus versiones de forma automática.
- Aprende a usar condiciones previas de solicitud para evitar las condiciones de carrera.