This page shows you how to delete objects from your buckets inCloud Storage.
Before you begin
To get the permissions that you need to delete objects, ask your administratorto grant you the Storage Object User (roles/storage.objectUser
)IAM role for the bucket that contains the objects you want todelete.
If you plan on using the Google Cloud console to complete the tasks on thispage, ask your administrator to grant you the Storage Admin(roles/storage.admin
) role instead of the Storage Object User(roles/storage.objectUser
) role, or the Viewer (roles/viewer
) basic rolein addition to the Storage Object User (roles/storage.objectUser
) role.
These roles contain the following permissions, which are required to deleteobjects:
storage.objects.delete
storage.objects.list
- This permission is only needed when using the Google Cloud console orgsutil to perform the instructions on this page, or when using the
--recursive
flag or wildcards in Google Cloud CLI.
- This permission is only needed when using the Google Cloud console orgsutil to perform the instructions on this page, or when using the
storage.buckets.list
- This permission is only needed when using the Google Cloud console toperform the instructions on this page.
You can also get these permissions with otherpredefined roles or custom roles.
For information about granting roles for buckets, seeUse IAM with buckets.
Delete an object
Complete the following steps to delete objects from one of yourCloud Storage buckets:
Console
- In the Google Cloud console, go to the Cloud Storage Buckets page.
In the list of buckets, click on the name of the bucket that containsthe objects you want to delete.
The Bucket details page opens, with the Objects tab selected.
Navigate to the objects, which may be located in a folder.
Click the checkbox for each object you want to delete.
You can also click the checkbox for folders, which will delete allobjects contained in that folder.
Click the Delete button.
Click Delete in the dialog that appears.
If you delete many objects at once, you can track deletion progress byclicking the Notifications icon in the Google Cloud console. TheGoogle Cloud console can bulk delete up to several million objectsand does so in the background.
To learn how to get detailed error information about failed Cloud Storage operations in the Google Cloud console, see Troubleshooting.
Command line
gcloud
Use the Google Cloud CLI command gcloud storage rm
:
gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME
Where:
BUCKET_NAME
is the name of the bucket containingthe object you want to delete. For example,my-bucket
.OBJECT_NAME
is the name of the object you wantto delete. For example,pets/dog.png
.
If successful, the response is similar to the following example:
Removing objects:Removing gs://example-bucket/file.txt...Completed 1/1
gsutil
Use the gsutil rm
command:
gsutil rm gs://BUCKET_NAME/OBJECT_NAME
Where:
BUCKET_NAME
is the name of the bucket containingthe object you want to delete. For example,my-bucket
.OBJECT_NAME
is the name of the object you wantto delete. For example,pets/dog.png
.
If successful, the response is similar to the following example:
Operation completed over 1 objects.
Client libraries
For more information, see the Cloud Storage C++ API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for a local development environment. View on GitHub Feedback For more information, see the Cloud Storage C# API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for a local development environment. View on GitHub Feedback For more information, see the Cloud Storage Go API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for a local development environment. View on GitHub Feedback For more information, see the Cloud Storage Java API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for a local development environment. View on GitHub Feedback For more information, see the Cloud Storage Node.js API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for a local development environment. View on GitHub Feedback For more information, see the Cloud Storage PHP API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for a local development environment. View on GitHub Feedback For more information, see the Cloud Storage Python API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for a local development environment. View on GitHub Feedback For more information, see the Cloud Storage Ruby API reference documentation. To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for a local development environment. View on GitHub Feedback 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#
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
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: %w", 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 delete the file 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: %w", err)}o = o.If(storage.Conditions{GenerationMatch: attrs.Generation})if err := o.Delete(ctx); err != nil {return fmt.Errorf("Object(%q).Delete: %w", object, err)}fmt.Fprintf(w, "Blob %v deleted.\n", object)return nil}
Java
import com.google.cloud.storage.Blob;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(); Blob blob = storage.get(bucketName, objectName); if (blob == null) { System.out.println("The object " + objectName + " wasn't found in " + bucketName); return; } // Optional: set a generation-match precondition to avoid potential race // conditions and data corruptions. The request to upload returns a 412 error if // the object's generation number does not match your precondition. Storage.BlobSourceOption precondition = Storage.BlobSourceOption.generationMatch(blob.getGeneration()); storage.delete(bucketName, objectName, precondition); System.out.println("Object " + objectName + " was deleted from " + bucketName); }}
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 libraryconst {Storage} = require('@google-cloud/storage');// Creates a clientconst storage = new Storage();// Optional:// Set a generation-match precondition to avoid potential race conditions// and data corruptions. The request to delete is aborted if the object's// generation number does not match your precondition. For a destination// object that does not yet exist, set the ifGenerationMatch precondition to 0// If the destination object already exists in your bucket, set instead a// generation-match precondition using its generation number.const deleteOptions = { ifGenerationMatch: generationMatchPrecondition,};async function deleteFile() { await storage.bucket(bucketName).file(fileName).delete(deleteOptions); console.log(`gs://${bucketName}/${fileName} deleted`);}deleteFile().catch(console.error);
PHP
use Google\Cloud\Storage\StorageClient;/** * Delete an object. * * @param string $bucketName The name of your Cloud Storage bucket. * (e.g. 'my-bucket') * @param string $objectName The name of your Cloud Storage object. * (e.g. 'my-object') */function delete_object(string $bucketName, string $objectName): void{ $storage = new StorageClient(); $bucket = $storage->bucket($bucketName); $object = $bucket->object($objectName); $object->delete(); printf('Deleted gs://%s/%s' . PHP_EOL, $bucketName, $objectName);}
Python
from google.cloud import storagedef 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) generation_match_precondition = None # Optional: set a generation-match precondition to avoid potential race conditions # and data corruptions. The request to delete is aborted if the object's # generation number does not match your precondition. blob.reload() # Fetch blob metadata to use in generation_match_precondition. generation_match_precondition = blob.generation blob.delete(if_generation_match=generation_match_precondition) print(f"Blob {blob_name} deleted.")
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
REST APIs
JSON API
- Get an authorization access token from theOAuth 2.0 Playground.Configure the playground to use your own OAuth credentials. For instructions, seeAPI authentication.
Use
cURL
to call the JSON API with aDELETE
request:curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Where:
OAUTH2_TOKEN
is the name of the accesstoken you generated in Step 1.BUCKET_NAME
is the name of the bucketcontaining the object you want to delete. For example,my-bucket
.OBJECT_NAME
is the URL-encoded name ofthe object you want to delete. For example,pets/dog.png
,URL-encoded aspets%2Fdog.png
.
XML API
- Get an authorization access token from theOAuth 2.0 Playground.Configure the playground to use your own OAuth credentials. For instructions, seeAPI authentication.
Use
cURL
to call the XML API with aDELETE Object
request:curl -X DELETE \ -H "Authorization: Bearer OAUTH2_TOKEN" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Where:
OAUTH2_TOKEN
is the name of the accesstoken you generated in Step 1.BUCKET_NAME
is the name of the bucketcontaining the object you want to delete. For example,my-bucket
.OBJECT_NAME
is the URL-encoded name ofthe object you want to delete. For example,pets/dog.png
,URL-encoded aspets%2Fdog.png
.
Delete objects in bulk
If you want to bulk delete a hundred thousand or more objects, avoid using
gcloud storage
or gsutil, as the process takes a long time to complete.Instead, use the Google Cloud console, which can delete up to several millionobjects, or Object Lifecycle Management, which can delete any number ofobjects.- To bulk delete objects in your bucket using Object Lifecycle Management,set a lifecycle configuration rule on your bucket where thecondition has
Age
set to 0 days and the action is set todelete
.
- To bulk delete objects in your bucket using Object Lifecycle Management,set a lifecycle configuration rule on your bucket where thecondition has
When using certain client libraries or when using the JSON API directly, youcan batch your deletion requests to reduce the number of HTTPconnections you need to make.
What's next
- Learn about the Object Versioning feature.
- Learn about the Object Lifecycle Management feature.
- Learn how to delete a bucket.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-12-19 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]
As an expert in cloud storage solutions, I can provide a comprehensive overview of the concepts covered in the article.
Overview: Cloud Storage is a service that allows you to store and retrieve data on Google Cloud Platform. It provides scalable, secure, and highly available storage infrastructure for your applications.
Solutions: The article covers various solutions related to Cloud Storage, including:
-
Object Deletion: Explains how to delete objects from Cloud Storage buckets using the Google Cloud Console, gcloud command-line tool, and client libraries.
-
Permission Management: Describes the required IAM roles (Storage Object User, Storage Admin, and Viewer) for deleting objects and managing permissions.
-
Bulk Deletion: Recommends using the Google Cloud console or Object Lifecycle Management for bulk deletion of objects.
Products: The primary product discussed is Google Cloud Storage, which offers different storage classes, including multi-regional, dual-regional, and regional storage.
Pricing: Details on pricing for Google Cloud Storage are not explicitly mentioned in this snippet. However, pricing typically involves factors like storage class, data transfer, and operations.
Resources: The article provides resources such as guides, reference documentation, samples, and support information for users to effectively utilize Cloud Storage.
Docs: Documentation is available for various tasks, including managing buckets, uploading and downloading objects, configuring access control, enabling features like versioning and object holds, and ensuring data encryption.
Support: Information about troubleshooting, managing access, monitoring data, and implementing protection, backup, and recovery mechanisms is included.
Concepts in the Code Samples: The code samples demonstrate how to delete objects using various programming languages and Google Cloud client libraries, such as C++, C#, Go, Java, Node.js, PHP, Python, and Ruby.
REST APIs: The article covers how to delete objects using JSON and XML APIs, involving steps like obtaining authorization access tokens and using cURL commands.
Bulk Deletion Techniques: It advises against using gcloud storage or gsutil for bulk deletion and recommends using the Google Cloud console or Object Lifecycle Management. Batch deletion requests are also mentioned.
Next Steps: The article concludes by suggesting further learning about Object Versioning, Object Lifecycle Management, and how to delete a bucket.
In summary, this article serves as a comprehensive guide for users of Google Cloud Storage, covering a range of topics from basic operations to advanced features and best practices.