Utilizzare gli oggetti eliminati temporaneamente

Panoramica della configurazione

Questa pagina descrive come elencare, accedere e ripristinare gli oggetti eliminati temporaneamente.

Prima di iniziare

Per ottenere le autorizzazioni necessarie per elencare, accedere e ripristinare gli oggetti eliminati temporaneamente, chiedi all'amministratore di concederti ilruolo IAM Storage Admin (roles/storage.admin) nel bucket, nella cartella gestita o nel progetto.

Questo ruolo predefinito contiene le autorizzazioni necessarie per elencare, accedere e ripristinare gli oggetti eliminati temporaneamente. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per elencare, accedere e ripristinare gli oggetti eliminati temporaneamente sono necessarie le seguenti autorizzazioni:

  • storage.buckets.get (questa autorizzazione è necessaria solo per utilizzare la Google Cloud console per eseguire le istruzioni riportate in questa pagina)
  • storage.buckets.list (questa autorizzazione è necessaria solo per utilizzare la Google Cloud console per eseguire le istruzioni riportate in questa pagina)
  • storage.objects.get (questa autorizzazione è necessaria solo per utilizzare la Google Cloud console per eseguire le istruzioni riportate in questa pagina)
  • storage.objects.list
  • storage.objects.restore
  • storage.objects.create
  • storage.objects.delete (questa autorizzazione è necessaria solo per ripristinare gli oggetti in modo che gli oggetti esistenti vengano sovrascritti)
  • storage.buckets.restore (questa autorizzazione è necessaria solo per ripristinare in blocco gli oggetti eliminati temporaneamente)

Per informazioni sulla concessione dei ruoli nei bucket, consulta Impostare e gestire le policy IAM nei bucket. Per informazioni sulla concessione dei ruoli nei progetti, consulta Gestire l'accesso ai progetti.

Per gestire le operazioni a lunga esecuzione avviate dai metodi di eliminazione temporanea, potresti aver bisogno di ruoli e autorizzazioni aggiuntivi. Per saperne di più, consulta Ruoli richiesti per le operazioni a lunga esecuzione.

Elencare tutti gli oggetti eliminati temporaneamente in un bucket

Segui queste istruzioni per elencare tutti gli oggetti eliminati temporaneamente in un bucket:

Console

  1. Nella Google Cloud console, vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket di cui vuoi visualizzare gli oggetti eliminati temporaneamente. Si apre la pagina Dettagli bucket con la scheda Oggetti selezionata.

  3. Nell'elenco Mostra, seleziona Solo oggetti eliminati temporaneamente. Viene visualizzato un elenco di oggetti eliminati temporaneamente.

Riga di comando

Per visualizzare un elenco di tutti gli oggetti eliminati temporaneamente in un bucket, utilizza il gcloud storage ls comando con il --soft-deleted flag e il ** carattere jolly. Tieni presente che potrebbe essere necessario racchiudere l'espressione con caratteri jolly tra virgolette.

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

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket. Ad esempio, my-bucket.

API REST

API JSON

  1. Assicurati che gcloud CLI sia installato e inizializzato, in modo da poter generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l5}l'API JSON con una richiesta di elencare gli oggetti che utilizzano il parametro di query ?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"

    Dove BUCKET_NAME è il nome del bucket pertinente. Ad esempio, my-bucket.

Visualizzare tutte le versioni eliminate temporaneamente di un oggetto

Segui queste istruzioni per visualizzare tutte le versioni eliminate temporaneamente di un oggetto specifico nel bucket:

Console

  1. Nella Google Cloud console, vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket che contiene l'oggetto di cui vuoi visualizzare le versioni eliminate temporaneamente. Si apre la pagina Dettagli bucket con la scheda Oggetti selezionata.

  3. Fai clic sull'oggetto di cui vuoi visualizzare tutte le versioni eliminate temporaneamente. Viene visualizzata la pagina Dettagli oggetto.

  4. Fai clic sulla scheda Cronologia versioni.

  5. Nell'elenco Mostra, seleziona Solo oggetti eliminati temporaneamente. Viene visualizzato un elenco di tutte le versioni eliminate temporaneamente dell'oggetto.

Riga di comando

Per visualizzare un elenco di tutte le versioni eliminate temporaneamente di un oggetto in un bucket, utilizza il gcloud storage ls comando:

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

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket. Ad esempio, my-bucket.
  • OBJECT_NAME: il nome dell'oggetto di cui vuoi visualizzare tutte le versioni.

API REST

API JSON

  1. Assicurati che gcloud CLI sia installato e inizializzato, in modo da poter generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l5}l'API JSON con una richiesta di elencare gli oggetti che utilizzano il parametro di query ?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"

    Sostituisci quanto segue:

    • BUCKET_NAME: il nome del bucket. Ad esempio, my-bucket.
    • OBJECT_NAME: il nome dell'oggetto di cui vuoi visualizzare tutte le versioni.

Ripristinare un oggetto eliminato temporaneamente

Puoi ripristinare una versione specifica di un oggetto eliminato temporaneamente nel bucket. Tieni presente che non puoi ripristinare gli oggetti in un bucket eliminato temporaneamente. Per ripristinare gli oggetti in un bucket eliminato temporaneamente, devi prima ripristinare il bucket eliminato temporaneamente.

Segui queste istruzioni per ripristinare un oggetto eliminato temporaneamente:

Console

  1. Nella Google Cloud console, vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket che contiene gli oggetti eliminati temporaneamente che vuoi ripristinare. Si apre la pagina Dettagli bucket con la scheda Oggetti selezionata.

  3. Nell'elenco Mostra, seleziona Solo oggetti eliminati temporaneamente.

  4. Vai all'oggetto, che potrebbe trovarsi in una cartella.

  5. Fai clic sull'oggetto eliminato temporaneamente. Viene visualizzata la pagina Dettagli oggetto.

  6. Nell'elenco Mostra, seleziona Solo oggetti eliminati temporaneamente. Viene visualizzato un elenco di tutte le versioni eliminate temporaneamente dell'oggetto.

  7. Per ripristinare una versione specifica di un oggetto eliminato temporaneamente, fai clic su Ripristina accanto alla versione dell'oggetto. Si apre il riquadro Ripristina versione oggetto.

  8. Fai clic su Conferma.

Riga di comando

Per ripristinare una versione eliminata temporaneamente di un oggetto, utilizza il gcloud storage restore comando:

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

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket. Ad esempio, my-bucket.
  • OBJECT_NAME: il nome dell'oggetto di cui vuoi visualizzare tutte le versioni.
  • GENERATION_NUMBER: il numero di generazione dell'oggetto eliminato temporaneamente che vuoi ripristinare. Ad esempio, 1560468815691234. Se non specifichi il numero di generazione, viene ripristinata l'ultima versione.

Per altre opzioni per il ripristino in blocco di più oggetti, incluso il ripristino di tutte le versioni di un oggetto con il all-versions flag, consulta il gcloud storage restore riferimento.

API REST

API JSON

  1. Assicurati che gcloud CLI sia installato e inizializzato, in modo da poter generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una POST richiesta 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"

    Dove:

    • BUCKET_NAME è il nome del bucket pertinente. Ad esempio, my-bucket.
    • OBJECT_NAME è il nome dell'oggetto eliminato temporaneamente che vuoi ripristinare. Ad esempio, cat.jpeg.
    • GENERATION_NUMBER è il numero di generazione dell'oggetto eliminato temporaneamente che vuoi ripristinare. Ad esempio, 1560468815691234.

Ripristinare in blocco gli oggetti eliminati temporaneamente in un bucket

Se vuoi ripristinare un numero elevato di oggetti o non conosci gli oggetti specifici che vuoi ripristinare, utilizza un'operazione di ripristino in blocco. Tieni presente che le operazioni di ripristino in blocco vengono eseguite in modo asincrono e, in alcuni casi, possono richiedere un'ora o più per iniziare.

L'operazione di ripristino in blocco avvia un'operazione a lunga esecuzione su un bucket. Puoi utilizzare Google Cloud CLI per ottenere ed elencare le operazioni a lunga esecuzione in modo da visualizzare i dettagli e lo stato dell'operazione di ripristino in blocco mentre è in corso.

Segui queste istruzioni per ripristinare in blocco gli oggetti eliminati temporaneamente in un bucket:

Console

  1. Nella Google Cloud console, vai alla pagina Bucket in Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, trova il bucket che contiene gli oggetti che vuoi ripristinare.

  3. Fai clic sul menu Overflow bucket () associato al bucket e seleziona Crea job di ripristino.

    Si apre il riquadro Crea un job di ripristino.

  4. Nella sezione Scegli gli oggetti eliminati temporaneamente da ripristinare, seleziona l'intervallo di tempo da cui vuoi ripristinare gli oggetti.

  5. (Facoltativo) Per ripristinare solo gli oggetti che corrispondono a un pattern glob, seleziona Filtra per pattern glob e poi inserisci un pattern glob.

  6. (Facoltativo) Specifica comportamenti di ripristino aggiuntivi nella sezione Opzioni di ripristino.

  7. Fai clic su Crea.

Puoi monitorare l'avanzamento dell'operazione di ripristino in blocco facendo clic sul pulsante Notifiche () nell' Google Cloud intestazione della console.

Riga di comando

Per utilizzare l'operazione di ripristino in blocco per ripristinare tutti gli oggetti in un bucket, utilizza il gcloud storage restore comando.

Ad esempio, il seguente comando esegue un'operazione di ripristino in blocco per ripristinare in modo asincrono tutti gli oggetti del bucket eliminati durante un periodo di tempo specifico:

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

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket. Ad esempio, my-bucket.
  • DELETED_AFTER_TIME: un argomento facoltativo per specificare la data dopo la quale vengono ripristinati gli oggetti. Ad esempio, 2022-12-01.
  • DELETED_BEFORE_TIME: un argomento facoltativo per specificare la data prima della quale vengono ripristinati gli oggetti. Ad esempio, 2022-12-21.

Per altre opzioni che puoi utilizzare per filtrare gli oggetti da ripristinare in blocco, consulta il gcloud storage restore riferimento.

In caso di esito positivo, il comando restituisce l'ID dell'operazione a lunga esecuzione associata all'operazione di ripristino in blocco. Puoi ottenere i dettagli dell'operazione a lunga esecuzione o annullarla per interrompere l'operazione di ripristino in blocco prima che venga completata. Per saperne di più, consulta Utilizzare le operazioni a lunga esecuzione.

API REST

API JSON

  1. Assicurati che gcloud CLI sia installato e inizializzato, in modo da poter generare un token di accesso per l'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una POST richiesta 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"

    Dove BUCKET_NAME è il nome del bucket pertinente. Ad esempio, my-bucket.

In caso di esito positivo, il comando restituisce l'ID dell'operazione a lunga esecuzione associata all'operazione di ripristino in blocco. Puoi ottenere i dettagli dell'operazione a lunga esecuzione o annullarla per interrompere l'operazione di ripristino in blocco prima che venga completata. Per saperne di più, consulta Utilizzare le operazioni a lunga esecuzione.

Utilizzare le operazioni a lunga esecuzione per il ripristino in blocco

L'operazione di ripristino in blocco per gli oggetti avvia un'operazione a lunga esecuzione. Puoi ottenere ed elencare le operazioni a lunga esecuzione per visualizzare i dettagli e lo stato di un'operazione di ripristino in blocco oppure eliminare un'operazione a lunga esecuzione per annullare un'operazione di ripristino in blocco mentre è in corso.

Per istruzioni sull'utilizzo delle operazioni a lunga esecuzione avviate da operazioni in Cloud Storage, come l'operazione di ripristino in blocco, consulta Utilizzare le operazioni a lunga esecuzione.

L'esempio seguente mostra un'operazione a lunga esecuzione restituita da un'operazione di ripristino in blocco:

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"
  }
}

Passaggi successivi