Questa pagina mostra come eliminare gli oggetti dai bucket in Cloud Storage. Per una panoramica dei metodi di eliminazione degli oggetti, consulta Informazioni sull'eliminazione degli oggetti.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per eliminare gli oggetti, chiedi all'amministratore di concederti i seguenti ruoli IAM sul bucket che contiene gli oggetti che vuoi eliminare:
-
Elimina gli oggetti utilizzando Google Cloud CLI o le API REST:
Utente oggetto Storage (
roles/storage.objectUser) -
Elimina gli oggetti utilizzando la console Google Cloud :
Storage Admin (
roles/storage.admin) -
In alternativa, per eliminare gli oggetti utilizzando la console Google Cloud :
Visualizzatore (
roles/viewer) e Utente oggetti Storage (roles/storage.objectUser)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per eliminare gli oggetti. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per eliminare gli oggetti sono necessarie le seguenti autorizzazioni:
-
Elimina oggetti:
storage.objects.delete -
Elenca gli oggetti utilizzando la console Google Cloud o utilizzando il flag
--recursiveo i caratteri jolly in Google Cloud CLI:storage.objects.list -
Elenca i bucket utilizzando la console Google Cloud :
storage.buckets.list
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Eliminare un singolo oggetto
Questa sezione mostra come eliminare un oggetto alla volta.
Per eliminare un singolo oggetto:
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che contiene gli oggetti da eliminare.
Si apre la pagina Dettagli bucket con la scheda Oggetti selezionata.
Vai all'oggetto, che potrebbe trovarsi in una cartella.
Seleziona la casella di controllo per l'oggetto da eliminare.
Fai clic su Elimina e poi su Elimina nella finestra di dialogo visualizzata.
Riga di comando
Utilizza il comando Google Cloud CLI gcloud storage rm:
gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME
Dove:
BUCKET_NAMEè il nome del bucket contenente l'oggetto che vuoi eliminare. Ad esempio,my-bucket.OBJECT_NAMEè il nome dell'oggetto che vuoi eliminare. Ad esempio,pets/dog.png.
Se l'operazione ha esito positivo, la risposta è simile all'esempio seguente:
Removing objects: Removing gs://example-bucket/file.txt... Completed 1/1
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Rust
API REST
API JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization.Utilizza
curlper chiamare l'API JSON con una richiestaDELETE:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Dove:
BUCKET_NAMEè il nome del bucket che contiene l'oggetto da eliminare. Ad esempio,my-bucket.OBJECT_NAMEè il nome codificato nell'URL dell'oggetto che vuoi eliminare. Ad esempio,pets/dog.png, codificato come URLpets%2Fdog.png.
API XML
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization.Utilizza
curlper chiamare l'API XML con una richiestaDELETE Object:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Dove:
BUCKET_NAMEè il nome del bucket che contiene l'oggetto da eliminare. Ad esempio,my-bucket.OBJECT_NAMEè il nome codificato nell'URL dell'oggetto che vuoi eliminare. Ad esempio,pets/dog.png, codificato come URLpets%2Fdog.png.
Eliminare più oggetti contemporaneamente
Questa sezione mostra come eliminare gli oggetti collettivamente selezionandoli nella consoleGoogle Cloud , eliminando gli oggetti con un prefisso comune utilizzando gli strumenti a riga di comando o specificando un elenco di oggetti nelle richieste API o delle librerie client.
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che contiene gli oggetti da eliminare.
Si apre la pagina Dettagli bucket con la scheda Oggetti selezionata.
Vai agli oggetti, che potrebbero trovarsi in una cartella.
Seleziona la casella di controllo per ogni oggetto da eliminare.
Puoi selezionare la casella di controllo di una cartella, che elimina tutti gli oggetti contenuti al suo interno.
Fai clic su Elimina e poi su Elimina nella finestra di dialogo visualizzata.
Se elimini molti oggetti contemporaneamente, puoi monitorare l'avanzamento dell'eliminazione facendo clic sull'icona Notifiche nella console Google Cloud . La consoleGoogle Cloud può eliminare in blocco fino a diversi milioni di oggetti e lo fa in background.
Per scoprire come ottenere informazioni dettagliate sugli errori relativi alle operazioni di Cloud Storage non riuscite nella console Google Cloud , consulta Risoluzione dei problemi.
Riga di comando
Google Cloud CLI
Per eliminare gruppi di oggetti con lo stesso prefisso, ad esempio
oggetti i cui nomi imitano una struttura di cartelle, utilizza il
flag --recursive con gcloud storage rm:
gcloud storage rm --recursive gs://BUCKET_NAME/PREFIX
Dove:
BUCKET_NAMEè il nome del bucket. Ad esempio,my-bucket.PREFIXè il prefisso comune degli oggetti che vuoi eliminare. Ad esempio,pets/.
CLI Amazon S3
Per eliminare più oggetti in Cloud Storage utilizzando la CLI Amazon S3, utilizza il comando aws s3api delete-objects. Devi reindirizzare la richiesta all'API XML per l'eliminazione di più oggetti di Cloud Storage impostando il flag --endpoint-url su storage.googleapis.com. Per definizioni dettagliate dei parametri e comportamento dell'API delete-objects, consulta la documentazione di riferimento di Amazon S3 CLI delete-objects.
Librerie client
Cloud Storage supporta l'API XML per l'eliminazione di più oggetti tramite la sua interfaccia compatibile con Amazon S3.
Per utilizzare librerie client compatibili con Amazon S3 per l'eliminazione collettiva di oggetti, indirizza
la richiesta all'endpoint Google Cloud impostando l'URL dell'endpoint su https://storage.googleapis.com nella configurazione del client. Questo approccio può essere utile se esegui una delle seguenti attività:
- Sfruttare le codebase o gli strumenti esistenti già creati per Amazon S3.
- Mantenere la coerenza in ambienti multi-cloud che includono sia Amazon S3 che Cloud Storage.
L'esempio seguente mostra come inizializzare un client utilizzando una libreria Boto3 per interagire con Cloud Storage:
import boto3
def main():
# Initialize the S3 client to point to the Google Cloud Storage endpoint
client = boto3.client(
service_name='s3',
endpoint_url='https://storage.googleapis.com',
aws_access_key_id='YOUR_ACCESS_ID',
aws_secret_access_key='YOUR_SECRET',
)
# Perform delete operations as defined in the library's documentation
# response = client.delete_objects(Bucket='BUCKET_NAME', Delete={'Objects': [...]})
Per firme di metodi e definizioni di parametri specifici, consulta la documentazione di Boto3 delete_objects.
API XML
Per eliminare fino a 1000 oggetti in una singola richiesta utilizzando l'API XML, completa i seguenti passaggi:
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization.Crea un documento XML che specifichi gli oggetti da eliminare.
Per un elenco completo delle impostazioni, consulta Eliminare più oggetti nella documentazione di riferimento dell'API XML. Le impostazioni comuni da includere nel file XML sono le seguenti:
<Delete> <Object> <Key>OBJECT_NAME</Key> <VersionId>VERSION_ID</VersionId> </Object> ... <Quiet>QUIET_RESPONSE_BOOLEAN</Quiet> </Delete>Dove:
OBJECT_NAMEè il nome dell'oggetto codificato come URL. Ad esempio,pets/dog.png, codificato come URLpets%2Fdog.png. Puoi specificare fino a 1000 oggetti nel file XML.VERSION_IDè l'ID versione dell'oggetto. Ad esempio:11111.QUIET_RESPONSE_BOOLEANcontrolla il livello di dettaglio della risposta dell'API:- Imposta questo valore su
Falseper una risposta dettagliata. La risposta include i dettagli di ogni oggetto, indipendentemente dal fatto che sia stato eliminato correttamente o meno. L'operazione di eliminazione di più oggetti tramite l'API XML non è atomica. Se una richiesta genera errori parziali, alcuni oggetti potrebbero essere eliminati correttamente, ma altri potrebbero non essere eliminati. Pertanto, ti consigliamo di utilizzare la risposta dettagliata per identificare tutte le eliminazioni di oggetti. Se hai abilitato gli audit log di accesso ai dati, puoi anche esaminare i log di controllo per i dettagli degli errori. - Imposta questo valore su
Trueper una risposta silenziosa. Il corpo della risposta non include informazioni sugli oggetti eliminati correttamente.
- Imposta questo valore su
Utilizza
curlper inviare una richiesta bucketPOSTall'API XML con il parametro di query?deletee il tuo file XML:curl -X POST --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?delete"
Dove:
XML_FILE_NAMEè il nome del file XML che hai creato.BUCKET_NAMEè il nome del bucket contenente gli oggetti da eliminare.Se la modalità
Quietè disattivata, una risposta dettagliata potrebbe essere simile alla seguente:<DeleteResult> <Deleted> <Key>images/photo1.jpg</Key> <VersionId>11111</VersionId> </Deleted> <Deleted> <Key>documents/report.pdf</Key> <VersionId>22222</VersionId> </Deleted> <Error> <Code>AccessDenied</Code> <Key>private/financial_data.xlsx</Key> <Message>Access Denied. You don't have permission to delete this object.</Message> <VersionId>33333</VersionId> </Error> </DeleteResult>
Se la modalità
Quietè attivata, la risposta elenca solo gli oggetti che non sono stati eliminati. Se tutti gli oggetti vengono eliminati correttamente, viene restituito un tag<DeleteResult/>vuoto. Di seguito è riportato un esempio di risposta silenziosa in cui si è verificato un errore:<DeleteResult> <Error> <Code>AccessDenied</Code> <Key>private/financial_data.xlsx</Key> <Message>Access Denied. You don't have permission to delete this object.</Message> <VersionId>33333</VersionId> </Error> </DeleteResult>
Eliminare fino a miliardi di oggetti
Per eliminare milioni o miliardi di oggetti con un singolo job di eliminazione, utilizza le operazioni batch di archiviazione. Per creare un job, specifica gli oggetti da eliminare fornendo un elenco di oggetti in un file manifest o utilizzando i prefissi degli oggetti. Dopo aver specificato l'elenco degli oggetti, crea un job di operazioni batch per eliminare gli oggetti.
Eliminare automaticamente gli oggetti utilizzando le regole del ciclo di vita degli oggetti
Se vuoi che gli oggetti vengano eliminati automaticamente quando soddisfano i criteri che specifichi, ad esempio età o classe di archiviazione, utilizza la gestione del ciclo di vita degli oggetti. Ad esempio, puoi impostare una regola del ciclo di vita per eliminare i log più vecchi di 30 giorni.
Richieste di eliminazione degli oggetti batch con l'API JSON
Per ridurre il numero di connessioni HTTP necessarie quando elimini molti oggetti con l'API JSON, utilizza le richieste batch dell'API JSON. Puoi raggruppare fino a 100 chiamate API in un'unica richiesta HTTP per ridurre il sovraccarico della rete.
Passaggi successivi
- Scopri come ripristinare gli oggetti eliminati temporaneamente se hai eliminato un oggetto per errore.
- Se utilizzi il controllo delle versioni degli oggetti, tieni presente che l'eliminazione di un oggetto potrebbe renderlo non aggiornato anziché eliminarlo definitivamente. Scopri come gestire o eliminare definitivamente le versioni non correnti.
- Configura la gestione del ciclo di vita degli oggetti per automatizzare le eliminazioni future degli oggetti.
- Elimina un bucket se non ti serve più.