Usar objetos eliminados de forma lógica

Descripción general Configuración

En esta página se describe cómo mostrar, acceder y restaurar objetos eliminados de forma no definitiva.

Antes de empezar

Para obtener los permisos que necesitas para enumerar, acceder y restaurar objetos eliminados temporalmente, 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, la carpeta gestionada o el proyecto.

Este rol predefinido contiene los permisos necesarios para enumerar, acceder y restaurar objetos eliminados temporalmente. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para mostrar, acceder y restaurar objetos eliminados de forma no definitiva, se necesitan los siguientes permisos:

  • storage.buckets.get (este permiso solo es necesario para usar la Google Cloud consola y seguir las instrucciones de esta página)
  • storage.buckets.list (este permiso solo es necesario para usar la Google Cloud consola y seguir las instrucciones de esta página)
  • storage.objects.get (este permiso solo es necesario para usar la Google Cloud consola y seguir las instrucciones de esta página)
  • storage.objects.list
  • storage.objects.restore
  • storage.objects.create
  • storage.objects.delete (este permiso solo es necesario para restaurar objetos de forma que se sobrescriban los objetos que ya existen)
  • storage.buckets.restore (este permiso solo es necesario para restaurar de forma masiva objetos eliminados no definitivamente)

Para obtener información sobre cómo conceder roles en los contenedores, consulta Usar IAM con contenedores. Para obtener información sobre cómo conceder roles en proyectos, consulta el artículo Gestionar el acceso a proyectos.

Para gestionar las operaciones de larga duración que se inician desde métodos de eliminación lógica, es posible que necesites roles y permisos adicionales. Consulta los roles necesarios para las operaciones de larga duración para obtener más información.

Mostrar todos los objetos eliminados de forma lógica de un segmento

Sigue estas instrucciones para enumerar todos los objetos eliminados de forma lógica de un cubo:

Consola

  1. En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.

    Ir a Contenedores

  2. En la lista de segmentos, haga clic en el nombre del segmento cuyos objetos eliminados temporalmente quiera ver. Se abrirá la página Detalles del segmento con la pestaña Objetos seleccionada.

  3. En la lista Mostrar, selecciona Solo objetos eliminados temporalmente. Se muestra una lista de objetos eliminados de forma no definitiva.

Línea de comandos

Para mostrar una lista de todos los objetos eliminados de forma lógica de un segmento, usa el comando gcloud storage ls con la marca --soft-deleted y el carácter comodín **. Ten en cuenta que puede que tengas que poner entre comillas la expresión comodín.

  gcloud storage ls gs://BUCKET_NAME/** --soft-deleted

Haz los cambios siguientes:

  • BUCKET_NAME: el nombre del segmento. Por ejemplo, my-bucket.

APIs REST

API JSON

  1. Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado Authorization.

  2. Usa cURL para llamar a la API JSON con una solicitud para enumerar objetos que utilice el parámetro de consulta ?softDeleted:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?softDeleted=true"

    Donde BUCKET_NAME es el nombre del segmento correspondiente. Por ejemplo, my-bucket.

Ver todas las versiones eliminadas temporalmente de un objeto

Sigue estas instrucciones para ver todas las versiones eliminadas de forma lógica de un objeto específico de tu contenedor:

Consola

  1. En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.

    Ir a Contenedores

  2. En la lista de segmentos, haz clic en el nombre del segmento que contiene el objeto cuyas versiones eliminadas temporalmente quieres ver. Se abrirá la página Detalles del segmento con la pestaña Objetos seleccionada.

  3. Haz clic en el objeto del que quieras ver todas las versiones eliminadas temporalmente. Se muestra la página Detalles del objeto.

  4. Haga clic en la pestaña Historial de versiones.

  5. En la lista Mostrar, selecciona Solo objetos eliminados temporalmente. Se muestra una lista con todas las versiones eliminadas de forma lógica de ese objeto.

Línea de comandos

Para mostrar una lista de todas las versiones eliminadas de forma lógica de un objeto de un cubo, usa el comando gcloud storage ls:

  gcloud storage ls gs://BUCKET_NAME/OBJECT_NAME --soft-deleted

Haz los cambios siguientes:

  • BUCKET_NAME: el nombre del segmento. Por ejemplo, my-bucket.
  • OBJECT_NAME: el nombre del objeto del que quieres ver todas las versiones.

APIs REST

API JSON

  1. Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado Authorization.

  2. Usa cURL para llamar a la API JSON con una solicitud para enumerar objetos que utilice el parámetro de consulta ?softDeleted:

    curl -X GET \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o?matchGlob=OBJECT_NAME&softDeleted=true"

    Haz los cambios siguientes:

    • BUCKET_NAME: el nombre del segmento. Por ejemplo, my-bucket.
    • OBJECT_NAME: el nombre del objeto del que quieres ver todas las versiones.

Restaurar un objeto eliminado de forma no definitiva

Puedes restaurar una versión específica de un objeto eliminado no definitivamente de tu cubo. Ten en cuenta que no puedes restaurar objetos de un segmento eliminado de forma no definitiva. Para restaurar objetos de un segmento eliminado temporalmente, primero debes restaurar el segmento eliminado temporalmente.

Sigue estas instrucciones para restaurar un objeto eliminado de forma lógica:

Consola

  1. En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.

    Ir a Contenedores

  2. En la lista de segmentos, haga clic en el nombre del segmento que contiene los objetos eliminados temporalmente que quiere restaurar. Se abrirá la página Detalles del segmento con la pestaña Objetos seleccionada.

  3. En la lista Mostrar, selecciona Solo objetos eliminados temporalmente.

  4. Desplázate hasta el objeto, que puede estar en una carpeta.

  5. Haz clic en el objeto eliminado temporalmente. Se muestra la página Detalles del objeto.

  6. En la lista Mostrar, selecciona Solo objetos eliminados temporalmente. Se muestra una lista con todas las versiones eliminadas temporalmente de ese objeto.

  7. Para restaurar una versión específica de un objeto que se ha eliminado temporalmente, haz clic en Restaurar junto a esa versión del objeto. Se abrirá el panel de restauración de la versión del objeto.

  8. Haz clic en Confirmar.

Línea de comandos

Para restaurar una versión de un objeto que se ha eliminado de forma no definitiva, usa el comando gcloud storage restore:

  gcloud storage restore gs://BUCKET_NAME/OBJECT_NAME#GENERATION_NUMBER

Haz los cambios siguientes:

  • BUCKET_NAME: el nombre del segmento. Por ejemplo, my-bucket.
  • OBJECT_NAME: el nombre del objeto del que quieres ver todas las versiones.
  • GENERATION_NUMBER: el número de generación del objeto eliminado de forma lógica que quieres restaurar. Por ejemplo, 1560468815691234. Si no especificas el número de generación, se restaurará la versión más reciente.

Para ver otras opciones para restaurar varios objetos en bloque, incluida la restauración de todas las versiones de un objeto con la marca all-versions, consulta la referencia de gcloud storage restore.

APIs REST

API JSON

  1. Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado Authorization.

  2. Usa cURL para llamar a la API JSON con una solicitud de POST Object:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/restore?generation=GENERATION_NUMBER"

    Donde:

    • BUCKET_NAME es el nombre del segmento correspondiente. Por ejemplo, my-bucket.
    • OBJECT_NAME es el nombre del objeto eliminado de forma lógica que quieres restaurar. Por ejemplo, cat.jpeg.
    • GENERATION_NUMBER es el número de generación del objeto eliminado temporalmente que quieres restaurar. Por ejemplo, 1560468815691234.

Restaurar en bloque objetos eliminados no definitivamente de un segmento

Si quieres restaurar un gran número de objetos o no sabes cuáles quieres restaurar, usa una operación de restauración en bloque. Tenga en cuenta que las operaciones de restauración en bloque se realizan de forma asíncrona y, en algunos casos, pueden tardar una hora o más en iniciarse.

La operación de restauración en bloque inicia una operación de larga duración en un cubo. Puedes usar la CLI de Google Cloud para obtener y enumerar operaciones de larga duración, de modo que puedas ver los detalles y el estado de la operación de restauración en bloque mientras está en curso.

Sigue estas instrucciones para restaurar en bloque los objetos eliminados temporalmente de un segmento:

Consola

  1. En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.

    Ir a Contenedores

  2. En la lista de segmentos, busca el que contenga los objetos que quieras restaurar.

  3. Haga clic en el menú Desbordamiento de contenedor () asociado al contenedor y seleccione Crear trabajo de restauración.

    Se abrirá el panel Crear una tarea de restauración.

  4. En la sección Choose which soft-deleted objects to restore (Elige qué objetos eliminados temporalmente quieres restaurar), selecciona el periodo de eliminación del que quieras restaurar objetos.

  5. (Opcional) Seleccione Filtrar por patrón glob e introduzca un patrón glob para restaurar solo los objetos que cumplan los criterios del patrón glob.

  6. (Opcional) Activa o desactiva otros comportamientos de restauración en la sección Opciones de restauración.

  7. Haz clic en Crear.

Para hacer un seguimiento del progreso de la operación de restauración en bloque, haz clic en el botón Notificaciones () situado en la cabecera de la consola Google Cloud .

Línea de comandos

Para usar la operación de restauración masiva y restaurar todos los objetos de un segmento, usa el comando gcloud storage restore.

El siguiente comando realiza una operación de restauración masiva para restaurar de forma asíncrona todos los objetos del contenedor que se eliminaron durante un periodo específico:

  gcloud storage restore gs://BUCKET_NAME/** \
      --async --deleted-after-time=DELETED_AFTER_TIME \
      --deleted-before-time=DELETED_BEFORE_TIME

Haz los cambios siguientes:

  • BUCKET_NAME: el nombre del segmento. Por ejemplo, my-bucket.
  • DELETED_AFTER_TIME: argumento opcional para especificar la fecha a partir de la cual se restauran los objetos. Por ejemplo, 2022-12-01.
  • DELETED_BEFORE_TIME: argumento opcional para especificar la fecha anterior a la que se restauran los objetos. Por ejemplo, 2022-12-21.

    Si la acción se realiza correctamente, el comando devuelve el ID de la operación de larga duración asociada a la operación de restauración masiva. Puede obtener los detalles de la operación de larga duración o cancelarla para detener la operación de restauración en bloque antes de que se complete. Para obtener más información, consulta Usar operaciones de larga duración.

APIs REST

API JSON

  1. Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado Authorization.

  2. Usa cURL para llamar a la API JSON con una solicitud de POST Object:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/bulkRestore"

    Donde BUCKET_NAME es el nombre del segmento correspondiente. Por ejemplo, my-bucket.

Si la acción se realiza correctamente, el comando devuelve el ID de la operación de larga duración asociada a la operación de restauración masiva. Puede obtener los detalles de la operación de larga duración o cancelarla para detener la operación de restauración en bloque antes de que se complete. Para obtener más información, consulta Usar operaciones de larga duración.

Usar operaciones de larga duración para restauraciones en bloque

La operación de restauración en bloque inicia una operación de larga duración. Puedes obtener y enumerar operaciones de larga duración para ver los detalles y el estado de una operación de restauración en bloque, o bien eliminar una operación de larga duración para cancelar una operación de restauración en bloque mientras está en curso.

Para obtener instrucciones sobre cómo usar operaciones de larga duración que se inician a partir de operaciones en Cloud Storage, como la operación de restauración masiva, consulta Usar operaciones de larga duración.

En el siguiente ejemplo se muestra una operación de larga duración que se devuelve de una operación de restauración masiva:

done: false
{
  "kind": "storage@operation",
  "name": "projects/_/buckets/my-bucket/operations/CiQyODRlMTY0My0wNGExLTQ3MWItOTE2Zi1hZmQ0ZmM4ZDc4MjQQAg",
  "metadata": {
    "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsMetadata",
    "commonMetadata": {
      "type": "bulk-restore-objects",
      "createTime": "2023-10-20T21:08:11.289Z",
      "updateTime": "2023-10-20T21:18:37.583Z",
      "endTime": "2023-10-20T21:18:37.583Z",
      "requestedCancellation": false,
      "progressPercent": -1,
    },
    "allow_overwrite": false,
    "matchGlobs": ["*"],
    "succeededCount": "0",
    "failedCount": "0",
    "skippedCount": "0",
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.storage.v2.BulkRestoreObjectsResponse"
  }
}

Siguientes pasos