Supprimer des objets

Cette page montre comment supprimer des objets de vos buckets dans Cloud Storage. Pour obtenir une présentation des objets, consultez la page Termes clés.

Prérequis

Les conditions préalables peuvent varier en fonction de l'outil utilisé :

Console

Pour suivre ce guide à l'aide de Google Cloud Console, vous devez disposer des autorisations IAM appropriées. Si l'objet que vous souhaitez supprimer existe dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires.

Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour Google Cloud Console.

Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.

Command line

Pour suivre ce guide à l'aide d'un utilitaire de ligne de commande, vous devez disposer des autorisations IAM appropriées. Si l'objet que vous souhaitez supprimer existe dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires.

Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour les commandes gsutil.

Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.

Exemples de code

Pour suivre ce guide à l'aide des bibliothèques clientes Cloud Storage, vous devez disposer des autorisations IAM appropriées. Si l'objet que vous souhaitez supprimer existe dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires. Sauf indication contraire, les requêtes de bibliothèque cliente sont effectuées via l'API JSON.

Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour les méthodes JSON.

Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.

API REST

API JSON

Pour suivre ce guide à l'aide de l'API JSON, vous devez disposer des autorisations IAM appropriées. Si l'objet que vous souhaitez supprimer existe dans un projet que vous n'avez pas créé, vous devrez peut-être demander au propriétaire du projet qu'il vous attribue un rôle contenant les autorisations nécessaires.

Pour obtenir la liste des autorisations requises pour des actions spécifiques, consultez la page Autorisations IAM pour les méthodes JSON.

Pour obtenir la liste des rôles pertinents, consultez la page Rôles Cloud Storage. Vous pouvez également créer un rôle personnalisé disposant d'autorisations limitées spécifiques.

Supprimer un objet

Pour supprimer des objets de l'un de vos buckets Cloud Storage, procédez comme suit :

Console

  1. Dans Google Cloud Console, accédez à la page du Navigateur Cloud Storage.

    Accéder à la page du navigateur

  2. Dans la liste des buckets, cliquez sur le nom du bucket qui contient les objets à supprimer.

    La page Informations sur le bucket s'ouvre avec l'onglet Objets sélectionné.

  3. Accédez aux objets, qui peuvent se trouver dans un dossier.

  4. Cochez la case correspondant à chaque objet que vous souhaitez supprimer.

    Vous pouvez également cocher la case pour les dossiers, ce qui supprimera tous les objets contenus dans chaque dossier.

  5. Cliquez sur le bouton Supprimer.

  6. Dans la boîte de dialogue qui s'affiche, cliquez sur Supprimer.

Si vous supprimez plusieurs objets à la fois, vous pouvez suivre la progression de la suppression en cliquant sur l'icône Notifications dans la console Google Cloud. La console Google Cloud peut supprimer plusieurs millions d'objets de manière groupée en arrière-plan.

Pour savoir comment obtenir des informations d'erreur détaillées sur les opérations ayant échoué dans le navigateur Cloud Storage, consultez la page Dépannage.

Command line

gcloud

Exécutez la commande Google Cloud CLIgcloud alpha storage rm :

gcloud alpha storage rm gs://BUCKET_NAME/OBJECT_NAME

Où :

  • BUCKET_NAME correspond au nom du bucket contenant l'objet que vous souhaitez supprimer. Exemple :my-bucket
  • OBJECT_NAME correspond au nom de l'objet que vous souhaitez supprimer. Exemple :pets/dog.png

Si l'opération réussit, la réponse se présente comme suit :

Operation completed over 1 objects.

gsutil

Exécutez la commande gsutil rm :

gsutil rm gs://BUCKET_NAME/OBJECT_NAME

Où :

  • BUCKET_NAME correspond au nom du bucket contenant l'objet que vous souhaitez supprimer. Exemple :my-bucket
  • OBJECT_NAME correspond au nom de l'objet que vous souhaitez supprimer. Exemple :pets/dog.png

Si l'opération réussit, la réponse se présente comme suit :

Operation completed over 1 objects.

Exemples de code

C++

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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#

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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}.");
    }
}

Go

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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

Pour en savoir plus, consultez la documentation de référence de l'API Cloud Storage en langage 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. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth. Pour obtenir des instructions, consultez la page Authentification des API.
  2. Exécutez cURL pour appeler l'API JSON avec une requête DELETE :

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

    Où :

    • OAUTH2_TOKEN correspond au nom du jeton d'accès que vous avez généré à l'étape 1.
    • BUCKET_NAME correspond au nom du bucket contenant l'objet que vous souhaitez supprimer. Par exemple, my-bucket.
    • OBJECT_NAME correspond au nom de l'objet encodé au format URL. Par exemple, pets/dog.png, encodé au format URL : pets%2Fdog.png.

API XML

  1. Obtenez un jeton d'autorisation d'accès sur la page OAuth 2.0 Playground. Configurez Playground pour utiliser vos propres identifiants OAuth. Pour obtenir des instructions, consultez la page Authentification des API.
  2. Exécutez cURL pour appeler l'API XML avec une requête DELETE Object :

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

    Où :

    • OAUTH2_TOKEN correspond au nom du jeton d'accès que vous avez généré à l'étape 1.
    • BUCKET_NAME correspond au nom du bucket contenant l'objet que vous souhaitez supprimer. Par exemple, my-bucket.
    • OBJECT_NAME correspond au nom de l'objet encodé au format URL. Par exemple, pets/dog.png, encodé au format URL : pets%2Fdog.png.

Supprimer des objets de manière groupée

Si vous souhaitez effectuer une suppression groupée pour au moins cent mille objets, évitez d'utiliser l'outil gsutil avec lequel l'opération durerait longtemps. Utilisez plutôt Google Cloud Console, qui peut supprimer jusqu'à plusieurs millions d'objets, ou la gestion du cycle de vie des objets, qui peut supprimer n'importe quel nombre d'objets.

Pour supprimer des objets de votre bucket de manière groupée à l'aide de la gestion du cycle de vie des objets, définissez une règle de configuration du cycle de vie sur votre bucket en définissant la condition Age sur 0 jour et l'action sur delete.

Étape suivante