En esta página se describe cómo habilitar, inhabilitar y comprobar el estado del control de versiones de objetos en un contenedor. Consulta Usar objetos con versiones para saber cómo listar, restaurar y eliminar los objetos que se conservan mediante la gestión de versiones de objetos.
Roles obligatorios
Para obtener los permisos que necesitas para configurar y gestionar el control de versiones de objetos en un segmento, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de Storage (roles/storage.admin
) en el segmento o en el proyecto que lo contiene. Este rol predefinido contiene los permisos necesarios para configurar y gestionar el control de versiones de objetos de un segmento. Para ver los permisos exactos que se necesitan, despliega la sección Permisos obligatorios:
Permisos obligatorios
storage.buckets.get
storage.buckets.update
storage.buckets.list
- Este permiso solo es necesario si tienes previsto usar la Google Cloud consola para seguir las instrucciones de esta página.
También puedes obtener estos permisos con roles personalizados.
Para obtener información sobre cómo conceder roles en los contenedores, consulta Usar IAM con contenedores. Para obtener información sobre cómo asignar roles en proyectos, consulta Gestionar el acceso a proyectos.
Definir la gestión de versiones de objetos en un segmento
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haga clic en el nombre del segmento en el que quiera habilitar o inhabilitar el control de versiones de objetos.
Seleccione la pestaña Protección, situada cerca de la parte superior de la página.
El estado actual de la gestión de versiones de objetos se encuentra en la sección Gestión de versiones de objetos.
En la sección Control de versiones de objetos, haga clic en el estado actual para cambiarlo.
Aparecerá el cuadro de diálogo Gestión de versiones de objetos.
- Si vas a habilitar el control de versiones de objetos y quieres minimizar los costes de almacenamiento, marca la casilla Añadir reglas de ciclo de vida recomendadas para gestionar los costes de las versiones.
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 segmento correspondiente. Por ejemplo,my-bucket
.FLAG
puede ser--versioning
para habilitar el control de versiones de objetos o--no-versioning
para inhabilitarlo.
Si la solicitud se hace correctamente, la respuesta será similar a la del siguiente ejemplo:
Updating gs://my-bucket/... Completed 1
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentación de referencia de la API C++ de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se habilita la gestión de versiones de objetos en un segmento:
En el siguiente ejemplo se inhabilita la gestión de versiones de objetos en un segmento:
C#
Para obtener más información, consulta la documentación de referencia de la API C# de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se habilita la gestión de versiones de objetos en un segmento:
En el siguiente ejemplo se inhabilita la gestión de versiones de objetos en un segmento:
Go
Para obtener más información, consulta la documentación de referencia de la API Go de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se habilita la gestión de versiones de objetos en un segmento:
En el siguiente ejemplo se inhabilita la gestión de versiones de objetos en un segmento:
Java
Para obtener más información, consulta la documentación de referencia de la API Java de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se habilita la gestión de versiones de objetos en un segmento:
En el siguiente ejemplo se inhabilita la gestión de versiones de objetos en un segmento:
Node.js
Para obtener más información, consulta la documentación de referencia de la API Node.js de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se habilita la gestión de versiones de objetos en un segmento:
En el siguiente ejemplo se inhabilita la gestión de versiones de objetos en un segmento:
PHP
Para obtener más información, consulta la documentación de referencia de la API PHP de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se habilita la gestión de versiones de objetos en un segmento:
En el siguiente ejemplo se inhabilita la gestión de versiones de objetos en un segmento:
Python
Para obtener más información, consulta la documentación de referencia de la API Python de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se habilita la gestión de versiones de objetos en un segmento:
En el siguiente ejemplo se inhabilita la gestión de versiones de objetos en un segmento:
Ruby
Para obtener más información, consulta la documentación de referencia de la API Ruby de Cloud Storage.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.
En el siguiente ejemplo se habilita la gestión de versiones de objetos en un segmento:
En el siguiente ejemplo se inhabilita la gestión de versiones de objetos en un segmento:
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, 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 } }
STATE puede ser
true
ofalse
.Usa
cURL
para llamar a la API JSON con una solicitud dePATCH
contenedor: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 del archivo JSON que has creado en el paso 2.BUCKET_NAME
es el nombre del segmento correspondiente. Por ejemplo,my-bucket
.
API XML
Tener instalada e inicializadala CLI de gcloud, 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>
STATE puede ser
Enabled
oSuspended
.Usa
cURL
para llamar a la API XML con una solicitud dePUT
contenedor 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"
Donde:
XML_FILE_NAME
es la ruta del archivo XML que has creado en el paso 2.BUCKET_NAME
es el nombre del segmento correspondiente. Por ejemplo,my-bucket
.
Una vez que se habilita la gestión de versiones de objetos, cada vez que se sustituye o se elimina una versión activa de un objeto, esa versión se convierte en una versión no actual.
Comprobar si la gestión de versiones de objetos está habilitada
Si quieres comprobar si el control de versiones de objetos está habilitado en un segmento, sigue estos pasos:
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, el estado de control de versiones de los objetos de cada segmento se encuentra en la columna Protección.
Si está habilitada, aparece el texto Gestión de versiones de objetos.
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_enabled)"
Donde BUCKET_NAME
es el nombre del contenedor cuyo estado quieres ver. Por ejemplo, my-bucket
.
Si la solicitud se realiza correctamente y la función de control de versiones de objetos está habilitada, la respuesta será similar al siguiente ejemplo:
versioning: enabled: true
Si la operación se realiza correctamente y la gestión de versiones de objetos no está habilitada, la respuesta será similar al siguiente ejemplo:
null
APIs REST
API JSON
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API JSON con una solicitud deGET
contenedor:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=versioning"
Donde
BUCKET_NAME
es el nombre del segmento correspondiente. Por ejemplo,my-bucket
.
Si la solicitud se realiza correctamente y la función de control de versiones de objetos está habilitada, la respuesta será similar al siguiente ejemplo:
{ "versioning": { "enabled": true } }
Si la operación se realiza correctamente y la gestión de versiones de objetos no está habilitada, la respuesta será similar al siguiente ejemplo:
{}
API XML
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API XML con una solicitud deGET
contenedor 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"
Donde
BUCKET_NAME
es el nombre del segmento correspondiente. Por ejemplo,my-bucket
.
Si la solicitud se realiza correctamente y la función de control de versiones de objetos está habilitada, la respuesta será similar al siguiente ejemplo:
<VersioningConfiguration>
<Status>Enabled</Status>
</VersioningConfiguration>
Si la operación se realiza correctamente y la gestión de versiones de objetos no está habilitada, la respuesta será similar al siguiente ejemplo:
<VersioningConfiguration/>
Siguientes pasos
- Consulte más información sobre la gestión de versiones de objetos.
- Consulta cómo trabajar con objetos no actuales.
- Consulte cómo usar la gestión del ciclo de vida de los objetos para gestionar automáticamente las versiones de los objetos.
- Consulta cómo usar las condiciones previas de las solicitudes para evitar las condiciones de carrera.