Elimina oggetti

Questa pagina mostra come eliminare oggetti dai bucket in Cloud Storage. Per una panoramica degli oggetti, leggi i Termini chiave.

Prerequisiti

I prerequisiti possono variare in base allo strumento utilizzato:

console

Per completare questa guida utilizzando Google Cloud Console, devi disporre delle autorizzazioni IAM appropriate. Se l'oggetto che vuoi eliminare esiste in un progetto che non hai creato, potresti avere bisogno del proprietario del progetto per assegnarti un ruolo contenente le autorizzazioni necessarie.

Per un elenco delle autorizzazioni necessarie per azioni specifiche, consulta Autorizzazioni IAM per Google Cloud Console.

Per un elenco dei ruoli pertinenti, consulta Ruoli di Cloud Storage. In alternativa, puoi creare un ruolo personalizzato con autorizzazioni specifiche e limitate.

Riga di comando

Per completare questa guida utilizzando un'utilità a riga di comando, devi disporre delle autorizzazioni IAM appropriate. Se l'oggetto che vuoi eliminare esiste in un progetto che non hai creato, potresti avere bisogno del proprietario del progetto per assegnarti un ruolo contenente le autorizzazioni necessarie.

Per un elenco delle autorizzazioni necessarie per azioni specifiche, consulta Autorizzazioni IAM per comandi gsutil.

Per un elenco dei ruoli pertinenti, consulta Ruoli di Cloud Storage. In alternativa, puoi creare un ruolo personalizzato con autorizzazioni specifiche e limitate.

Esempi di codice

Per completare questa guida utilizzando le librerie client di Cloud Storage, devi disporre delle autorizzazioni IAM appropriate. Se l'oggetto che vuoi eliminare esiste in un progetto non creato da te, potresti dover chiedere al proprietario del progetto di assegnarti un ruolo contenente le autorizzazioni necessarie. Se non diversamente indicato, le richieste della libreria client vengono effettuate tramite l'API JSON.

Per un elenco delle autorizzazioni necessarie per azioni specifiche, consulta le autorizzazioni IAM per i metodi JSON.

Per un elenco dei ruoli pertinenti, consulta Ruoli di Cloud Storage. In alternativa, puoi creare un ruolo personalizzato con autorizzazioni specifiche e limitate.

API REST

API JSON

Per completare questa guida utilizzando l'API JSON, devi disporre delle autorizzazioni IAM appropriate. Se l'oggetto che vuoi eliminare esiste in un progetto non creato da te, potresti dover chiedere al proprietario del progetto di assegnarti un ruolo contenente le autorizzazioni necessarie.

Per un elenco delle autorizzazioni necessarie per azioni specifiche, consulta le autorizzazioni IAM per i metodi JSON.

Per un elenco dei ruoli pertinenti, consulta Ruoli di Cloud Storage. In alternativa, puoi creare un ruolo personalizzato con autorizzazioni specifiche e limitate.

Elimina un oggetto

Completa i seguenti passaggi per eliminare oggetti da uno dei bucket di Cloud Storage:

console

  1. In Google Cloud Console, vai alla pagina Browser di Cloud Storage.

    Vai al browser

  2. Nell'elenco dei bucket, fai clic sul nome del bucket contenente gli oggetti da eliminare.

    Viene visualizzata la pagina Dettagli bucket, con la scheda Oggetti selezionata.

  3. Accedi agli oggetti, che potrebbero trovarsi in una cartella.

  4. Fai clic sulla casella di controllo accanto a ciascun oggetto da eliminare.

    Puoi anche fare clic sulla casella di controllo nelle cartelle per eliminare tutti gli oggetti contenuti nella cartella.

  5. Fai clic sul pulsante Elimina.

  6. Fai clic su Elimina nella finestra di dialogo visualizzata.

Se elimini più oggetti contemporaneamente, puoi monitorarne l'avanzamento facendo clic sull'icona Notifiche nella console. La console può eseguire l'eliminazione collettiva di diversi milioni di oggetti in background.

Per informazioni dettagliate sugli errori nelle operazioni non riuscite nel browser di Cloud Storage, consulta la sezione Risoluzione dei problemi.

Riga di comando

gcloud

Utilizza il comando dell'interfaccia a riga di comando di Google Cloud gcloud alpha storage rm:

gcloud alpha storage rm gs://BUCKET_NAME/OBJECT_NAME

Dove:

  • BUCKET_NAME è il nome del bucket che contiene l'oggetto che vuoi eliminare. Ad esempio, my-bucket.
  • OBJECT_NAME è il nome dell'oggetto da eliminare. Ad esempio, pets/dog.png.

In caso di esito positivo, la risposta sarà simile al seguente esempio:

Operation completed over 1 objects.

gsutil

Utilizza il comando gsutil rm:

gsutil rm gs://BUCKET_NAME/OBJECT_NAME

Dove:

  • BUCKET_NAME è il nome del bucket che contiene l'oggetto che vuoi eliminare. Ad esempio, my-bucket.
  • OBJECT_NAME è il nome dell'oggetto da eliminare. Ad esempio, pets/dog.png.

In caso di esito positivo, la risposta sarà simile al seguente esempio:

Operation completed over 1 objects.

Esempi di codice

C++

Per maggiori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage C++.

namespace gcs = ::google::cloud::storage;
[](gcs::Client client, std::string const& bucket_name,
   std::string const& object_name) {
  google::cloud::Status status =
      client.DeleteObject(bucket_name, object_name);

  if (!status.ok()) throw std::runtime_error(status.message());
  std::cout << "Deleted " << object_name << " in bucket " << bucket_name
            << "\n";
}

C#

Per maggiori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage C# .


using Google.Cloud.Storage.V1;
using System;

public class DeleteFileSample
{
    public void DeleteFile(
        string bucketName = "your-unique-bucket-name",
        string objectName = "your-object-name")
    {
        var storage = StorageClient.Create();
        storage.DeleteObject(bucketName, objectName);
        Console.WriteLine($"Deleted {objectName}.");
    }
}

Vai

Per maggiori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Go.

import (
	"context"
	"fmt"
	"io"
	"time"

	"cloud.google.com/go/storage"
)

// deleteFile removes specified object.
func deleteFile(w io.Writer, bucket, object string) error {
	// bucket := "bucket-name"
	// object := "object-name"
	ctx := context.Background()
	client, err := storage.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("storage.NewClient: %v", err)
	}
	defer client.Close()

	ctx, cancel := context.WithTimeout(ctx, time.Second*10)
	defer cancel()

	o := client.Bucket(bucket).Object(object)

	// Optional: set a generation-match precondition to avoid potential race
	// conditions and data corruptions. The request to upload is aborted if the
	// object's generation number does not match your precondition.
	attrs, err := o.Attrs(ctx)
	if err != nil {
		return fmt.Errorf("object.Attrs: %v", err)
	}
	o = o.If(storage.Conditions{GenerationMatch: attrs.Generation})

	if err := o.Delete(ctx); err != nil {
		return fmt.Errorf("Object(%q).Delete: %v", object, err)
	}
	fmt.Fprintf(w, "Blob %v deleted.\n", object)
	return nil
}

Java

Per maggiori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Java.

import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;

public class DeleteObject {
  public static void deleteObject(String projectId, String bucketName, String objectName) {
    // The ID of your GCP project
    // String projectId = "your-project-id";

    // The ID of your GCS bucket
    // String bucketName = "your-unique-bucket-name";

    // The ID of your GCS object
    // String objectName = "your-object-name";

    Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService();
    storage.delete(bucketName, objectName);

    System.out.println("Object " + objectName + " was deleted from " + bucketName);
  }
}

Node.js

Per maggiori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// The ID of your GCS bucket
// const bucketName = 'your-unique-bucket-name';

// The ID of your GCS file
// const fileName = 'your-file-name';

// Imports the Google Cloud client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

async function deleteFile() {
  await storage.bucket(bucketName).file(fileName).delete();

  console.log(`gs://${bucketName}/${fileName} deleted`);
}

deleteFile().catch(console.error);

PHP

Per maggiori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage PHP.

use Google\Cloud\Storage\StorageClient;

/**
 * Delete an object.
 *
 * @param string $bucketName The name of your Cloud Storage bucket.
 * @param string $objectName The name of your Cloud Storage object.
 */
function delete_object($bucketName, $objectName)
{
    // $bucketName = 'my-bucket';
    // $objectName = 'my-object';

    $storage = new StorageClient();
    $bucket = $storage->bucket($bucketName);
    $object = $bucket->object($objectName);
    $object->delete();
    printf('Deleted gs://%s/%s' . PHP_EOL, $bucketName, $objectName);
}

Python

Per maggiori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Python.

from google.cloud import storage

def delete_blob(bucket_name, blob_name):
    """Deletes a blob from the bucket."""
    # bucket_name = "your-bucket-name"
    # blob_name = "your-object-name"

    storage_client = storage.Client()

    bucket = storage_client.bucket(bucket_name)
    blob = bucket.blob(blob_name)
    blob.delete()

    print(f"Blob {blob_name} deleted.")

Ruby

Per maggiori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.

def delete_file bucket_name:, file_name:
  # The ID of your GCS bucket
  # bucket_name = "your-unique-bucket-name"

  # The ID of your GCS object
  # file_name = "your-file-name"

  require "google/cloud/storage"

  storage = Google::Cloud::Storage.new
  bucket  = storage.bucket bucket_name, skip_lookup: true
  file    = bucket.file file_name

  file.delete

  puts "Deleted #{file.name}"
end

API REST

API JSON

  1. Ottieni un token di accesso all'autorizzazione da OAuth 2.0 Playground. Configura il parco giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta la pagina relativa all'autenticazione API.
  2. Utilizza cURL per chiamare l'API JSON con una richiesta DELETE:

    curl -X DELETE \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"

    Dove:

    • OAUTH2_TOKEN è il nome del token di accesso generato nel passaggio 1.
    • BUCKET_NAME è il nome del bucket contenente l'oggetto che vuoi eliminare. Ad esempio, my-bucket.
    • OBJECT_NAME è il nome con codifica URL dell'oggetto da eliminare. Ad esempio, pets/dog.png, ha la codifica URL come pets%2Fdog.png.

API XML

  1. Ottieni un token di accesso all'autorizzazione da OAuth 2.0 Playground. Configura il parco giochi in modo che utilizzi le tue credenziali OAuth. Per le istruzioni, consulta la pagina relativa all'autenticazione API.
  2. Utilizza cURL per chiamare l'API XML con una richiesta DELETE Object:

    curl -X DELETE \
      -H "Authorization: Bearer OAUTH2_TOKEN" \
      "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"

    Dove:

    • OAUTH2_TOKEN è il nome del token di accesso generato nel passaggio 1.
    • BUCKET_NAME è il nome del bucket contenente l'oggetto che vuoi eliminare. Ad esempio, my-bucket.
    • OBJECT_NAME è il nome con codifica URL dell'oggetto da eliminare. Ad esempio, pets/dog.png, ha la codifica URL come pets%2Fdog.png.

Eliminare oggetti in blocco

Se vuoi eseguire l'eliminazione collettiva di centinaia di migliaia o più oggetti, evita di utilizzare gsutil, in quanto il processo richiede molto tempo. Utilizza invece Google Cloud Console, che può eliminare fino a diversi milioni di oggetti, o la Gestione del ciclo di vita degli oggetti, che può eliminare un numero qualsiasi di oggetti.

Per eseguire l'eliminazione collettiva degli oggetti nel tuo bucket utilizzando la gestione del ciclo di vita degli oggetti, imposta una regola di configurazione del ciclo di vita sul bucket in cui la condizione è impostata su Age a 0 giorni e l'azione è impostata su delete.

Passaggi successivi