Descripción general Configuración
En esta página se describe cómo enumerar, acceder, restaurar y eliminar objetos no actuales, lo que suele aplicarse a los segmentos que tienen habilitada la función Gestión de versiones de objetos.
Roles obligatorios
Para obtener los permisos que necesitas para gestionar objetos no actuales, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Usuario de objetos de Storage (roles/storage.objectUser
) en el proyecto. Este rol predefinido contiene los permisos necesarios para gestionar objetos no actuales. Para ver los permisos exactos que se necesitan, despliega la sección Permisos obligatorios:
Permisos obligatorios
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
También puedes obtener estos permisos con roles personalizados.
Para obtener información sobre cómo conceder roles en proyectos, consulta el artículo Gestionar el acceso a proyectos.
En función de tu caso práctico, es posible que necesites permisos adicionales o roles alternativos:
Si tienes previsto usar la consola para realizar las tareas de esta página, también necesitarás el permiso
storage.buckets.list
, que no se incluye en el rol Usuario de objeto de almacenamiento (roles/storage.objectUser
). Google Cloud Para obtener este permiso, pide a tu administrador que te conceda el rol Administrador de Storage (roles/storage.admin
) en el proyecto.Si el acceso uniforme a nivel de segmento está inhabilitado en tu segmento, necesitarás permisos adicionales en los siguientes casos:
Si tiene previsto devolver objetos no actuales junto con sus listas de control de acceso, también necesita el permiso
storage.objects.getIamPolicy
, que no se incluye en el rol Usuario de objeto de Storage (roles/storage.objectUser
). Para obtener este permiso, pide al administrador que te conceda el rol Administrador de objetos de Storage (roles/storage.objectAdmin
) en el proyecto.Si tienes previsto cambiar el nombre o restaurar objetos no actuales que tengan LCA, también necesitas el permiso
storage.objects.setIamPolicy
, que no se incluye en el rol de usuario de objetos de Storage (roles/storage.objectUser
). Para obtener este permiso, pide al administrador que te conceda el rol Administrador de objetos de Storage (roles/storage.objectAdmin
) en el proyecto.
Mostrar versiones de objetos que no están al día
Para enumerar las versiones activas y no actuales de los objetos y ver sus generation
números, sigue estos pasos:
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haz clic en el nombre del segmento que contiene el objeto que quieres.
Se abrirá la página Detalles del segmento, con la pestaña Objetos seleccionada.
Para ver los objetos que no sean actuales, haga clic en el menú desplegable Mostrar y seleccione Objetos activos y no actuales.
En la lista de objetos, haga clic en el nombre del objeto cuyas versiones quiera ver.
Se abrirá la página Detalles del objeto, con la pestaña Objeto en directo seleccionada.
Haga clic en la pestaña Historial de versiones para ver todas las versiones del objeto.
Línea de comandos
Usa el comando gcloud storage ls --all-versions
:
gcloud storage ls --all-versions gs://BUCKET_NAME
Donde BUCKET_NAME
es el nombre del segmento que contiene los objetos. Por ejemplo, my-bucket
.
La respuesta tiene este aspecto:
gs://BUCKET_NAME/OBJECT_NAME1#GENERATION_NUMBER1 gs://BUCKET_NAME/OBJECT_NAME2#GENERATION_NUMBER2 gs://BUCKET_NAME/OBJECT_NAME3#GENERATION_NUMBER3 ...
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.
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.
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.
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.
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.
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.
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.
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.
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 Objects: list:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?versions=true"
Donde
BUCKET_NAME
es el nombre del segmento que contiene los objetos. Por ejemplo,my-bucket
.
Las versiones no actuales de los objetos tienen una propiedad timeDeleted
.
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 consultaversions
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?versions&list-type=2"
Donde
BUCKET_NAME
es el nombre del segmento que contiene los objetos. Por ejemplo,my-bucket
.
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.
En concreto, Cloud Storage devuelve la siguiente información cuando incluye un parámetro de consulta versions
en su solicitud:
- Un elemento
Version
que contiene información sobre cada objeto. - Elemento
DeletedTime
que contiene la hora en la que la versión del objeto dejó de ser la actual (se eliminó o se sustituyó). - Un elemento `IsLatest que indica si el objeto específico es la versión más reciente.
- Se devuelve un elemento
NextGenerationMarker
si la lista de objetos es parcial, lo que ocurre cuando tiene muchas versiones de objetos en un segmento. Usa el valor de este elemento en el parámetro de consultagenerationmarker
de las solicitudes posteriores para reanudar la consulta desde el último punto. El parámetro de consultagenerationmarker
se usa de la misma forma que el parámetro de consultamarker
para desplazarse por una lista de un cubo sin versiones.
Acceder a versiones de objetos que no sean actuales
Para usar la versión no actual de un objeto al realizar tareas como descargar el objeto, ver sus metadatos o actualizar sus metadatos, sigue estos pasos:
Consola
El acceso general a una versión no actual no está disponible en la consola deGoogle Cloud . Con la consola Google Cloud , solo puedes mover, copiar, restaurar o eliminar una versión no actual. Estas acciones se realizan desde la lista del historial de versiones de un objeto.
Línea de comandos
Añade el número de generación de la versión no actual al nombre del objeto:
OBJECT_NAME#GENERATION_NUMBER
Donde:
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 cadena del paso anterior, sigue el procedimiento habitual para la versión activa del objeto. Por ejemplo, para ver los metadatos de una versión de un objeto que no sea actual, usa el comando
gcloud storage objects describe
:gcloud storage objects describe gs://my-bucket/pets/dog.png#1560468815691234
APIs REST
API JSON
Añade el número de generación 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
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la versión no actual. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado como URL de la versión no actual. Por ejemplo,pets/dog.png
, codificada como URLpets%2Fdog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual. Por ejemplo,1560468815691234
.
Con el URI del paso anterior, procede como lo harías normalmente con la versión activa del objeto. Por ejemplo, para ver los metadatos de una versión de un objeto que no es la actual, usa cURL para llamar a la API JSON con una solicitud Objects: get:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/my-bucket/o/pets/dog.png?generation=1560468815691234"
API XML
Añade el número de generación de la versión no actual al URI del objeto:
https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la versión no actual. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado como URL de la versión no actual. Por ejemplo,pets/dog.png
, codificada como URLpets%2Fdog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual. Por ejemplo,1560468815691234
.
Con el URI del paso anterior, procede como lo harías normalmente con la versión activa del objeto. Por ejemplo, para ver los metadatos de una versión de un objeto que no es la actual, usa
cURL
para llamar a la API XML con una solicitudHEAD
Object:curl -I GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/my-bucket/pets/dog.png?generation=1560468815691234"
Restaurar versiones de objetos no actuales
En Cloud Storage, restaurar una versión de un objeto que no es la actual significa hacer una copia de ella. Cuando lo hagas, la copia se convertirá en la versión activa, lo que restaurará la versión. Si ya hay una versión publicada y el segmento tiene habilitada la gestión de versiones de los objetos, al restaurar la versión no actual, la versión publicada anterior dejará de ser actual.
Consola
Google Cloud- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haz clic en el nombre del segmento que contiene el objeto que quieres.
Se abrirá la página Detalles del segmento, con la pestaña Objetos seleccionada.
Para ver los objetos que no sean actuales, haga clic en el menú desplegable Mostrar y seleccione Objetos activos y no actuales.
En la lista de objetos, haga clic en el nombre de la versión del objeto que quiera restaurar.
Se abrirá la página Detalles del objeto, con la pestaña Objeto en directo seleccionada.
Haga clic en la pestaña Historial de versiones.
Haz clic en el botón Restaurar de la versión que quieras.
Se abrirá el panel de restauración de la versión del objeto.
Haz clic en Confirmar.
Línea de comandos
Usa el comando gcloud storage cp
:
gcloud storage cp gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER gs://BUCKET_NAME
Donde:
BUCKET_NAME
es el nombre del contenedor que contiene la versión no actual que quiere restaurar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre de la versión no actual que quieres restaurar. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que quieres restaurar. Por ejemplo,1560468815691234
.
Si la acción se realiza correctamente, la respuesta se parecerá al siguiente ejemplo:
Operation completed over 1 objects/58.8 KiB.
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.
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.
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.
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.
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.
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.
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.
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.
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 dePOST
Object:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME?sourceGeneration=GENERATION_NUMBER"
Donde:
BUCKET_NAME
es el nombre del contenedor que contiene la versión no actual que quiere restaurar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado como URL de la versión no actual que quieres restaurar. Por ejemplo,pets/dog.png
, codificado como URLpets%2Fdog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que quieres restaurar. Por ejemplo,1560468815691234
.
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 de objetoPUT
:curl -X PUT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-copy-source: BUCKET_NAME/OBJECT_NAME" \ -H "x-goog-copy-source-generation:GENERATION_NUMBER" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Donde:
BUCKET_NAME
es el nombre del contenedor que contiene la versión no actual que quiere restaurar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado como URL de la versión no actual que quieres restaurar. Por ejemplo,pets/dog.png
, codificado como URLpets%2Fdog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que quieres restaurar. Por ejemplo,1560468815691234
.
Después de restaurar la versión del objeto, la versión no actual original sigue estando en el segmento. Si ya no necesitas la versión no actual, puedes eliminarla o configurar la gestión del ciclo de vida de los objetos para que se elimine cuando cumpla las condiciones que especifiques.
Eliminar versiones no actuales de objetos
Consola
Google Cloud- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haz clic en el nombre del segmento que contiene el objeto que quieres.
Se abrirá la página Detalles del segmento, con la pestaña Objetos seleccionada.
Para ver los objetos que no sean actuales, haga clic en el menú desplegable Mostrar y seleccione Objetos activos y no actuales.
Desplázate hasta el objeto, que puede estar en una carpeta.
En la lista de objetos, haz clic en el nombre del objeto cuya versión quieras eliminar.
Se abrirá la página Detalles del objeto, con la pestaña Objeto en directo seleccionada.
Haga clic en la pestaña Historial de versiones.
Marca la casilla de la versión que quieras.
Haz clic en el botón Eliminar.
Se abrirá el panel de eliminación de la versión.
Para confirmar que quieres eliminar el objeto, escribe
delete
en el campo de texto.Haz clic en Eliminar.
Línea de comandos
Usa el comando gcloud storage rm
:
gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la versión no actual que quieres eliminar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre de la versión no actual que quieres eliminar. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que quieres eliminar. Por ejemplo,1560468815691234
.
Si la acción se realiza correctamente, la respuesta se parecerá al siguiente ejemplo:
Operation completed over 1 objects.
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.
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.
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.
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.
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.
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.
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.
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.
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 deDELETE
Object:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?generation=GENERATION_NUMBER"
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la versión no actual que quieres eliminar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado mediante URL de la versión no actual que quieres eliminar. Por ejemplo,pets/dog.png
, codificado como URLpets%2Fdog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que quieres eliminar. Por ejemplo,1560468815691234
.
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 de objetoDELETE
:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?generation=GENERATION_NUMBER"
Donde:
BUCKET_NAME
es el nombre del segmento que contiene la versión no actual que quieres eliminar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado mediante URL de la versión no actual que quieres eliminar. Por ejemplo,pets/dog.png
, codificado como URLpets%2Fdog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que quieres eliminar. Por ejemplo,1560468815691234
.
Siguientes pasos
- Más información sobre la gestión de versiones de objetos, incluido un ejemplo detallado
- Habilita o inhabilita la gestión de versiones de objetos en un segmento.
- Consulte cómo usar la gestión del ciclo de vida de los objetos para gestionar automáticamente las versiones de los objetos.