Borra objetos

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En esta página, se muestra cómo borrar objetos de tus buckets en Cloud Storage.

Requisitos previos

Los requisitos previos pueden variar según la herramienta que se use:

Consola

Para completar esta guía con Google Cloud Console, debes tener los permisos de IAM adecuados. Si el objeto que deseas acceder existe en un proyecto que no creaste, es posible que necesites que el propietario del proyecto te otorgue una función con los permisos necesarios.

A fin de obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para Google Cloud Console.

Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.

Línea de comandos

Para completar esta guía con una utilidad de línea de comandos, debes tener los permisos de IAM adecuados. Si el objeto que deseas borrar existe en un proyecto que no creaste, es posible que necesites que el propietario del proyecto te otorgue una función con los permisos necesarios.

Si deseas obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para los comandos de gsutil.

Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.

Muestras de código

Para completar esta guía con las bibliotecas cliente de Cloud Storage, debes tener los permisos de IAM adecuados. Si el objeto que deseas borrar existe en un proyecto que no creaste, es posible que necesites que el propietario del proyecto te otorgue una función con los permisos necesarios. A menos que se indique lo contrario, las solicitudes de la biblioteca cliente se realizan mediante la API de JSON.

Si deseas obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para métodos JSON.

Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.

API de REST

API de JSON

Para completar esta guía con la API de JSON, debes tener los permisos de IAM adecuados. Si el objeto que deseas borrar existe en un proyecto que no creaste, es posible que necesites que el propietario del proyecto te otorgue una función con los permisos necesarios.

Si deseas obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para métodos JSON.

Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.

Borra un objeto

Completa los siguientes pasos para borrar objetos de uno de tus buckets de Cloud:

Console

  1. En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.

    Ir a Buckets

  2. En la lista de buckets, haz clic en el nombre del bucket que contiene el objeto que deseas borrar.

    Se abrirá la página Detalles del bucket y se seleccionará la pestaña Objetos.

  3. Navega hasta los objetos, que pueden estar en una carpeta.

  4. Haz clic en la casilla de verificación de cada objeto que deseas borrar.

    También puedes hacer clic en la casilla de verificación de las carpetas , lo que borrarán todos los objetos que contiene esa carpeta.

  5. Haz clic en el botón Borrar.

  6. Haz clic en Borrar en el diálogo que aparece.

Si borras muchos objetos a la vez, puedes realizar un seguimiento del progreso de eliminación; para ello, haz clic en el ícono Notificaciones en la consola de Google Cloud. La consola de Google Cloud puede borrar de forma masiva y en segundo plano varios millones de objetos.

Para obtener información sobre cómo ver detalles de errores acerca de operaciones fallidas de Cloud Storage en la consola de Google Cloud, consulta Solución de problemas.

Línea de comandos

gcloud

Usa el comando gcloud storage rm de la CLI de Google Cloud:

gcloud storage rm gs://BUCKET_NAME/OBJECT_NAME

Aquí:

  • BUCKET_NAME es el nombre del bucket que contiene el objeto que deseas borrar. Por ejemplo, my-bucket
  • OBJECT_NAME es el nombre del objeto que deseas borrar. Por ejemplo, pets/dog.png

Si se realiza de forma correcta, la respuesta se verá como el ejemplo siguiente:

Removing objects:
Removing gs://example-bucket/file.txt...
Completed 1/1

gsutil

Usa el comando gsutil rm:

gsutil rm gs://BUCKET_NAME/OBJECT_NAME

Aquí:

  • BUCKET_NAME es el nombre del bucket que contiene el objeto que deseas borrar. Por ejemplo, my-bucket
  • OBJECT_NAME es el nombre del objeto que deseas borrar. Por ejemplo, pets/dog.png

Si se realiza de forma correcta, la respuesta se verá como el ejemplo siguiente:

Operation completed over 1 objects.

Muestras de código

C++

Si deseas obtener más información, consulta la documentación de referencia de la API de 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#

Si deseas obtener más información, consulta la documentación de referencia de la API de 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}.");
    }
}

Go

Si deseas obtener más información, consulta la documentación de referencia de la API de 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage 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

Si deseas obtener más información, consulta la documentación de referencia de la API de 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();

// 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. 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

Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage 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

Si deseas obtener más información, consulta la documentación de referencia de la API de 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

Si deseas obtener más información, consulta la documentación de referencia de la API de 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 de REST

API de JSON

  1. Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
  2. Usa cURL para llamar a la API de JSON con una solicitud DELETE:

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

    Aquí:

    • OAUTH2_TOKEN es el nombre del token de acceso que generaste en el paso 1.
    • BUCKET_NAME es el nombre del bucket que contiene el objeto que deseas borrar. Por ejemplo, my-bucket.
    • OBJECT_NAME es el nombre codificado como URL del objeto que deseas borrar. Por ejemplo, pets/dog.png, codificado en URL como pets%2Fdog.png.

API de XML

  1. Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
  2. Usa cURL para llamar a la API de XML con una solicitud DELETE Object:

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

    Aquí:

    • OAUTH2_TOKEN es el nombre del token de acceso que generaste en el paso 1.
    • BUCKET_NAME es el nombre del bucket que contiene el objeto que deseas borrar. Por ejemplo, my-bucket.
    • OBJECT_NAME es el nombre codificado como URL del objeto que deseas borrar. Por ejemplo, pets/dog.png, codificado en URL como pets%2Fdog.png.

Borra objetos de forma masiva

Si deseas borrar de forma masiva cien mil objetos o más, evita usar gsutil, ya que el proceso toma mucho tiempo en completarse. En su lugar, usa Google Cloud Console, que puede borrar hasta varios millones de objetos, o la Administración del ciclo de vida de los objetos, que puede borrar cualquier cantidad de objetos.

Para borrar objetos de forma masiva en tu bucket con la Administración del ciclo de vida de los objetos, establece una regla de configuración del ciclo de vida en tu bucket en la que la condición tenga Age establecido en 0 días y la acción esté configurada en delete.

¿Qué sigue?