Utilizza oggetti eliminati temporaneamente

Panoramica Configurazione

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

Prima di iniziare

Per completare le attività in questa pagina, assicurati di disporre del ruolo IAM Amministratore Storage (roles/storage.admin) per il bucket o il progetto che contiene il bucket. Questo ruolo predefinito include le autorizzazioni necessarie per gestire e ripristinare l'eliminazione temporanea in un bucket.

Per visualizzare esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

  • storage.buckets.get
  • storage.buckets.update
  • storage.buckets.list
    • Questa autorizzazione è necessaria se prevedi di utilizzare la console Google Cloud per eseguire le istruzioni in questa pagina.
  • storage.objects.restore
  • storage.objects.create
  • storage.objects.delete
    • Questa autorizzazione è necessaria se il ripristino di un oggetto comporta la sovrascrittura di un oggetto esistente.
  • storage.buckets.restore
    • Questa autorizzazione è necessaria se vuoi ripristinare collettivamente gli oggetti eliminati temporaneamente in un bucket.
  • storage.bucketOperations.*
    • Questa autorizzazione è richiesta per le operazioni a lunga esecuzione.

Per informazioni sulla concessione dei ruoli sui bucket, consulta Utilizzare IAM con i bucket. Per informazioni sulla concessione dei ruoli nei progetti, consulta Gestire l'accesso ai progetti.

Elenca tutti gli oggetti eliminati temporaneamente in un bucket

Puoi elencare tutti gli oggetti eliminati temporaneamente in un bucket.

Console

  1. Nella console Google Cloud, vai alla pagina Bucket di 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 comando gcloud storage ls con i flag --soft-deleted e --recursive:

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

Sostituisci quanto segue:

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

API REST

API JSON

  1. Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta di elenco degli oggetti che usa 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.

Visualizza tutte le versioni eliminate temporaneamente di un oggetto

Puoi visualizzare tutte le versioni eliminate temporaneamente di un oggetto specifico nel tuo bucket.

Console

  1. Nella console Google Cloud, vai alla pagina Bucket di 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 delle versioni.

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

Riga di comando

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

  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. Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta di elenco degli oggetti che usa 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 per il quale vuoi visualizzare tutte le versioni.

Ripristina un oggetto eliminato temporaneamente

Puoi ripristinare una versione specifica di un oggetto eliminato temporaneamente nel tuo bucket.

Console

  1. Nella console Google Cloud, vai alla pagina Bucket di 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. Accedi 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 di quell'oggetto.

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

  8. Fai clic su Conferma.

Riga di comando

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

  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. Se non specifichi il numero di generazione, viene ripristinata l'ultima versione. Ad esempio, 1560468815691234.

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

API REST

API JSON

  1. Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta Oggetto POST:

    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. Se non specifichi il numero di generazione, viene ripristinata l'ultima versione. 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 da ripristinare, utilizza un'operazione di ripristino collettivo. Tieni presente che le operazioni di ripristino collettivo avvengono in modo asincrono e, in alcuni casi, possono richiedere un'ora o più per iniziare.

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

Console

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

    Vai a Bucket

  2. Nell'elenco dei bucket, individua il bucket che contiene gli oggetti da ripristinare.

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

    Viene visualizzato il riquadro Crea un job di ripristino.

  4. Nella sezione Scegli gli oggetti eliminati temporaneamente da ripristinare, seleziona il periodo di eliminazione a partire dal quale vuoi ripristinare gli oggetti.

  5. (Facoltativo) Seleziona Filtra per pattern glob e inserisci un pattern glob per ripristinare solo gli oggetti che soddisfano i criteri del pattern glob.

  6. (Facoltativo) Attiva/disattiva ulteriori comportamenti di ripristino nella sezione Opzioni di ripristino.

  7. Fai clic su Crea.

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

Riga di comando

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

Il seguente comando esegue un'operazione di ripristino collettivo per ripristinare in modo asincrono tutti gli oggetti del bucket che sono stati 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.

    In caso di esito positivo, il comando restituisce l'ID dell'operazione a lunga esecuzione associata all'operazione di ripristino collettivo. Puoi ottenere i dettagli sull'operazione a lunga esecuzione o annullare l'operazione a lunga esecuzione per arrestare l'operazione di ripristino collettivo prima che venga completata.

API REST

API JSON

  1. Installa e inizializzatogcloud CLI per generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta Oggetto POST:

    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 collettivo. Puoi visualizzare i dettagli dell'operazione a lunga esecuzione o annullare l'operazione a lunga esecuzione per arrestare l'operazione di ripristino collettivo prima che venga completata.

Gestisci le operazioni a lunga esecuzione per il ripristino collettivo

Le operazioni a lunga esecuzione in Google Cloud CLI sono identificate da un nome operazione, che è una combinazione del nome del bucket e dell'ID operazione.

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

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

Per informazioni generali su come gestire le operazioni a lunga esecuzione, consulta la documentazione di gcloud storage operations.

Visualizza i dettagli di un'operazione a lunga esecuzione

Usa il comando gcloud storage operations describe:

gcloud storage operations describe projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket che contiene l'operazione a lunga esecuzione. Ad esempio, my-bucket.

  • OPERATION_ID: l'ID dell'operazione a lunga esecuzione restituito in risposta all'operazione di ripristino collettivo.

Elenca le operazioni a lunga esecuzione in un bucket

Usa il comando gcloud storage operations list:

gcloud storage operations list gs://BUCKET_NAME

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket che contiene le operazioni a lunga esecuzione. Ad esempio, my-bucket.

Annullare un'operazione a lunga esecuzione

Usa il comando gcloud storage operations cancel:

gcloud storage operations cancel projects/_/buckets/BUCKET_NAME/operations/OPERATION_ID

Sostituisci quanto segue:

  • BUCKET_NAME: il nome del bucket che contiene l'operazione a lunga esecuzione. Ad esempio, my-bucket.

  • OPERATION_ID: l'ID dell'operazione a lunga esecuzione restituito in risposta all'operazione di ripristino collettivo.

Gestione degli errori

Le operazioni a lunga esecuzione vengono restituite da API asincrone, che richiedono pratiche di gestione degli errori diverse rispetto alle API sincrone. A differenza delle API sincrone, le API che restituiscono operazioni a lunga esecuzione hanno esito positivo anche se l'operazione sottostante non va a buon fine. Quando utilizzi le API che restituiscono operazioni a lunga esecuzione, rispondi ai codici di errore restituiti nelle risposte riuscite, anziché ai codici di errore restituiti nelle risposte non riuscite.

Ad esempio, se effettui una richiesta di ripristino collettivo di eliminazione temporanea, viene restituito un codice di stato HTTP (200 OK) riuscito anche se si verifica un errore nel corso dell'operazione. Per verificare se l'operazione di ripristino collettivo è riuscita, esegui una query sullo stato dell'operazione a lunga esecuzione.

Tieni presente che le API per le operazione a lunga esecuzione (Get, Create, Cancel) sono sincrone e restituiscono errori normali.

Nuovi tentativi

Le API di eliminazione temporanea asincrona sono idempotenti per impostazione predefinita. Pertanto, puoi riprovare in sicurezza le chiamate API di eliminazione temporanea asincrone senza preoccuparti di modificare involontariamente le risorse.

Passaggi successivi