In questa pagina viene descritto 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 per 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 le autorizzazioni esatte necessarie, espandi la sezione Autorizzazioni richieste:
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 riportate in questa pagina.
storage.objects.restore
storage.objects.create
storage.objects.delete
- Questa autorizzazione è necessaria se il ripristino di un oggetto causa 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 è obbligatoria per le operazioni a lunga esecuzione.
Per informazioni sulla concessione dei ruoli nei bucket, consulta Utilizzare IAM con i bucket. Per informazioni sulla concessione dei ruoli nei progetti, consulta Gestire l'accesso ai progetti.
Elenco di tutti gli oggetti eliminati temporaneamente in un bucket
Puoi elencare tutti gli oggetti eliminati temporaneamente in un bucket.
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket di cui vuoi visualizzare gli oggetti eliminati temporaneamente. Si apre la pagina Dettagli bucket in cui è selezionata la scheda Oggetti.
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
Assicurati che gcloud CLI sia installato e inizializzatoper 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
.Utilizza
cURL
per chiamare l'API JSON con una richiesta di elencare gli oggetti che utilizza 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
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
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 in cui è selezionata la scheda Oggetti.
Fai clic sull'oggetto di cui vuoi visualizzare tutte le versioni eliminate temporaneamente. Viene visualizzata la pagina Dettagli oggetto.
Fai clic sulla scheda Cronologia delle versioni.
Nell'elenco Mostra, seleziona Solo oggetti eliminati temporaneamente. Viene visualizzato un elenco di tutte le versioni eliminate temporaneamente per l'oggetto in questione.
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
Assicurati che gcloud CLI sia installato e inizializzatoper 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
.Utilizza
cURL
per chiamare l'API JSON con una richiesta di elencare gli oggetti che utilizza 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?softDeleted=true"
Dove
BUCKET_NAME
è il nome del bucket pertinente. Ad esempio,my-bucket
.
Ripristina un oggetto eliminato temporaneamente
Puoi ripristinare una versione specifica di un oggetto eliminato temporaneamente nel bucket.
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che contiene gli oggetti eliminati temporaneamente da ripristinare. Si apre la pagina Dettagli bucket in cui è selezionata la scheda Oggetti.
Nell'elenco Mostra, seleziona Solo oggetti eliminati temporaneamente.
Vai all'oggetto, che potrebbe trovarsi in una cartella.
Fai clic sull'oggetto eliminato temporaneamente. Viene visualizzata la pagina Dettagli oggetto.
Nell'elenco Mostra, seleziona Solo oggetti eliminati temporaneamente. Viene visualizzato un elenco di tutte le versioni eliminate temporaneamente dell'oggetto.
Per ripristinare una versione specifica di un oggetto eliminata temporaneamente, fai clic su Ripristina accanto alla versione dell'oggetto. Viene visualizzato il riquadro di ripristino della versione degli oggetti.
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 per il quale vuoi visualizzare tutte le versioni.GENERATION_NUMBER
: il numero di generazione dell'oggetto eliminato temporaneamente da 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, tra cui il ripristino di tutte le versioni di un oggetto con il flag all-versions
, consulta la documentazione di riferimento gcloud storage restore
.
API REST
API JSON
Assicurati che gcloud CLI sia installato e inizializzatoper 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
.Utilizza
cURL
per chiamare l'API JSON con una richiestaPOST
oggetto: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 da ripristinare. Ad esempio,cat.jpeg
.GENERATION_NUMBER
è il numero di generazione dell'oggetto eliminato temporaneamente da ripristinare. Se non specifichi il numero di generazione, viene ripristinata l'ultima versione. Ad esempio,1560468815691234
.
Ripristino collettivo degli 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 collettive avvengono in modo asincrono e, in alcuni casi, possono richiedere un'ora o più.
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 visualizzare i dettagli e lo stato dell'operazione di ripristino collettivo mentre è in corso.
Console
- Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.
Nell'elenco dei bucket, individua il bucket che contiene gli oggetti da ripristinare.
Fai clic sul menu overflow del bucket (more_vert) associato al bucket e seleziona Crea job di ripristino.
Viene visualizzato il riquadro Crea un job di ripristino.
Nella sezione Scegli gli oggetti eliminati temporaneamente da ripristinare, seleziona il periodo di eliminazione a partire dal quale ripristinare gli oggetti.
(Facoltativo) Seleziona Filtra per pattern glob e inserisci un pattern glob per ripristinare solo gli oggetti che soddisfano i criteri per i pattern glob.
(Facoltativo) Attiva/disattiva ulteriori comportamenti di ripristino nella sezione Opzioni di ripristino.
Fai clic su Crea.
Puoi monitorare l'avanzamento dell'operazione di ripristino collettivo facendo clic sul pulsante Notifiche (notifications) che si trova nell'intestazione della console Google Cloud.
Riga di comando
Per utilizzare l'operazione di ripristino collettivo per ripristinare tutti gli oggetti in un bucket, utilizza il comando gcloud storage restore
.
Il seguente comando esegue un'operazione di ripristino in blocco 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
.Se l'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
Assicurati che gcloud CLI sia installato e inizializzatoper 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
.Utilizza
cURL
per chiamare l'API JSON con una richiestaPOST
oggetto: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
.
Se l'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 interrompere l'operazione di ripristino collettivo prima del completamento.
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
.
Ottieni i dettagli di un'operazione a lunga esecuzione
Utilizza 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 restituita nella risposta dell'operazione di ripristino collettivo.
Elenco delle operazioni a lunga esecuzione in un bucket
Utilizza 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
.
Annulla un'operazione a lunga esecuzione
Utilizza 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 restituita nella risposta dell'operazione di ripristino collettivo.
Gestione degli errori
Le operazioni a lunga esecuzione vengono restituite dalle 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 API che restituiscono operazioni a lunga esecuzione, rispondi ai codici di errore restituiti nelle risposte riuscite, invece di rispondere ai codici di errore restituiti nelle risposte non riuscite.
Ad esempio, una richiesta di ripristino collettivo di eliminazione temporanea restituisce 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 operazione a lunga esecuzione (Get, Create, Cancel) sono sincrone e restituiscono errori normali.
Nuovi tentativi
Le API di eliminazione temporanea asincrone sono idempotenti per impostazione predefinita. Di conseguenza, puoi riprovare in sicurezza alle chiamate API di eliminazione temporanea, asincrone, senza preoccuparti di modificare involontariamente le risorse.
Passaggi successivi
- Scopri di più sull'eliminazione temporanea.
- Scopri come utilizzare l'eliminazione temporanea.