Descripción general Configuración
En esta página, se describe cómo enumerar, acceder, restablecer y borrar objetos no actuales, que se suelen aplicar a los buckets con la función Control de versiones de objetos habilitada.
Roles obligatorios
Si deseas obtener los permisos que necesitas para administrar los objetos no actuales, pídele a tu administrador que te otorgue el rol de IAM de Usuario de objetos de almacenamiento (roles/storage.objectUser
) en el proyecto. Este rol predefinido contiene los permisos necesarios para administrar objetos no actuales. Para ver los permisos
exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
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 otorgar roles en proyectos, consulta Administra el acceso a los proyectos.
Según tu caso de uso, es posible que necesites permisos adicionales o roles alternativos:
Si planeas usar la consola de Google Cloud 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 objetos de Storage (roles/storage.objectUser
). Para obtener este permiso, pídele a tu administrador que te otorgue el rol Administrador de almacenamiento (roles/storage.admin
) en el proyecto.Si el acceso uniforme a nivel de bucket está inhabilitado para tu bucket, necesitas permisos adicionales en las siguientes situaciones:
Si planeas mostrar objetos no actuales junto con sus LCA, también necesitas el permiso
storage.objects.getIamPolicy
, que no se incluye en el rol de Usuario de objetos de almacenamiento (roles/storage.objectUser
). Para obtener este permiso, pídele a tu administrador que te otorgue el rol Administrador de objetos de almacenamiento (roles/storage.objectAdmin
) en el proyecto.Si planeas cambiar el nombre de los objetos no actuales que tienen LCA o restablecerlos, también necesitas el permiso
storage.objects.setIamPolicy
, que no se incluye en el rol de Usuario de objetos de almacenamiento (roles/storage.objectUser
). Para obtener este permiso, pídele a tu administrador que te otorgue el rol Administrador de objetos de almacenamiento (roles/storage.objectAdmin
) en el proyecto.
Enumera las versiones no actuales de los objetos
Para enumerar las versiones publicadas y no actuales de objetos y ver sus números de generation
, haz lo siguiente:
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 que contiene el objeto deseado.
Se abrirá la página Detalles del bucket y se seleccionará la pestaña Objetos.
Para ver los objetos no actuales, haz clic en el menú desplegable Mostrar y selecciona Objetos activos y no actuales.
En la lista de objetos, haz clic en el nombre del objeto cuyas versiones deseas ver.
Se abrirá la página Detalles del objeto y se seleccionará la pestaña Live Object.
Haz 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
En el ejemplo anterior, BUCKET_NAME
es el nombre del bucket que contiene los objetos. 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 ...
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.
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.
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.
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.
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.
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.
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.
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.
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 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"
En el ejemplo anterior,
BUCKET_NAME
es el nombre del bucket que contiene los objetos. Por ejemplo,my-bucket
Las versiones no actuales de objetos tienen una propiedad timeDeleted
.
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 consultaversions
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?versions&list-type=2"
En el ejemplo anterior,
BUCKET_NAME
es el nombre del bucket 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 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 elmarker
se usa para navegar por una lista de un depósito sin control de versiones.
Accede a las versiones no actuales de los 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
El acceso general a una versión no actual no está disponible en la consola de Google Cloud. Con la consola de Google Cloud, solo puedes mover, copiar, restablecer o borrar una versión no actual. Estas acciones se realizan desde la lista del historial de versiones de un objeto.
Línea de comandos
Agrega 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, procede como lo harías con la versión publicada del objeto. Por ejemplo, para ver los metadatos de una versión de objeto no actual, usa el comando
gcloud storage objects describe
:gcloud storage objects describe gs://my-bucket/pets/dog.png#1560468815691234
API de REST
API de JSON
Agrega 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 bucket que contiene la versión no actual. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado en URL de la versión no actual. Por ejemplo,pets/dog.png
, codificado en URL comopets%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 con la versión publicada del objeto. Por ejemplo, para ver los metadatos de una versión no actual de objeto, usa cURL para llamar a la API de 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 de XML
Agrega 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 bucket que contiene la versión no actual. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado en URL de la versión no actual. Por ejemplo,pets/dog.png
, codificado en URL comopets%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 con la versión publicada del objeto. Por ejemplo, para ver los metadatos de una versión de objeto no actual, usa
cURL
para llamar a la API de 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"
Restablece las versiones no actuales de los objetos
En Cloud Storage, restablecer una versión de objeto no actual significa hacer una copia de ella. Cuando lo haces, la copia se convierte en la versión publicada, lo que restablece la versión de forma eficaz. Si ya hay una versión publicada y el bucket tiene habilitado el control de versiones de objetos, restablecer la versión no actual hace que la versión publicada preexistente se vuelva no actual.
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 que contiene el objeto deseado.
Se abrirá la página Detalles del bucket y se seleccionará la pestaña Objetos.
Para ver los objetos no actuales, haz clic en el menú desplegable Mostrar y selecciona Objetos activos y no actuales.
En la lista de objetos, haz clic en el nombre de la versión del objeto que deseas restablecer.
Se abrirá la página Detalles del objeto y se seleccionará la pestaña Live Object.
Haz clic en la pestaña Historial de versiones.
Haz clic en el botón Restablecer de la versión que desees.
Se abrirá el panel para restablecer versiones de objetos.
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/OBJECT_NAME
Donde:
BUCKET_NAME
es el nombre del bucket que contiene la versión no actual que deseas restablecer. Por ejemplo,my-bucket
OBJECT_NAME
es el nombre de la versión no actual que deseas restablecer. Por ejemplo,pets/dog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que deseas restablecer. Por ejemplo,1560468815691234
.
Si se ejecuta de forma correcta, la respuesta se parece al siguiente ejemplo:
Operation completed over 1 objects/58.8 KiB.
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.
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.
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.
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.
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.
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.
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.
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.
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 objetoPOST
: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 bucket que contiene la versión no actual que deseas restablecer. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado en URL de la versión no actual que deseas restablecer. Por ejemplo,pets/dog.png
, codificado en URL comopets%2Fdog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que deseas restablecer. Por ejemplo,1560468815691234
.
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 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 bucket que contiene la versión no actual que deseas restablecer. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado en URL de la versión no actual que deseas restablecer. Por ejemplo,pets/dog.png
, codificado en URL comopets%2Fdog.png
.GENERATION_NUMBER
es el número de generación de la versión no actual que deseas restablecer. Por ejemplo,1560468815691234
.
Después de restablecer la versión del objeto, la versión no actual original sigue existiendo en el bucket. Si ya no necesitas la versión no actual, puedes borrarla con posterioridad o configurar la Administración del ciclo de vida de los objetos para quitarla cuando cumpla con las condiciones que especifiques.
Borra las versiones no actuales de los objetos
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 que contiene el objeto deseado.
Se abrirá la página Detalles del bucket y se seleccionará la pestaña Objetos.
Para ver los objetos no actuales, haz clic en el menú desplegable Mostrar y selecciona Objetos activos y no actuales.
Navega hasta el objeto, que puede estar en una carpeta.
En la lista de objetos, haz clic en el nombre del objeto cuya versión deseas borrar.
Se abrirá la página Detalles del objeto y se seleccionará la pestaña Live Object.
Haz clic en la pestaña Historial de versiones.
Selecciona la casilla de verificación de la versión que desees.
Haz clic en el botón Borrar.
Se abrirá el panel para borrar versiones.
Para confirmar que deseas borrar el objeto, escribe
delete
en el campo de texto.Haz clic en Borrar.
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 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 parece al siguiente ejemplo:
Operation completed over 1 objects.
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.
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.
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.
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.
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.
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.
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.
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.
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 objetoDELETE
: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 bucket que contiene la versión no actual que deseas borrar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado en URL de la versión no actual que deseas borrar. Por ejemplo,pets/dog.png
, codificado en URL comopets%2Fdog.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
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 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 bucket que contiene la versión no actual que deseas borrar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado en URL de la versión no actual que deseas borrar. Por ejemplo,pets/dog.png
, codificado en URL comopets%2Fdog.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, incluido un ejemplo detallado.
- Habilita o inhabilita el control de versiones de objetos en un bucket.
- Aprende a usar la Administración del ciclo de vida de los objetos para administrar sus versiones de forma automática.