Borrar objetos

En esta página, se muestra cómo borrar objetos de tus buckets en Cloud Storage. Para obtener una descripción general de los objetos, consulta los Términos clave.

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 Google Cloud Console, ve a la página Navegador de Cloud Storage.

    Ir al navegador

  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 aprender a obtener información detallada sobre errores en las operaciones fallidas en el navegador de Cloud Storage, consulta Solución de problemas.

Línea de comandos

gcloud

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

gcloud alpha 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 es correcto, la respuesta se parece al siguiente ejemplo:

Operation completed over 1 objects.

gsutil

Usa el comando gsutil rm:

gsutil rm gs://BUCKET_NAME/OBJECT_NAME

En el ejemplo anterior, se ilustra lo siguiente:

  • 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 es correcto, la respuesta se parece al siguiente ejemplo:

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 para 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 para 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 para 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 para 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

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

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

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

    En el ejemplo anterior, se ilustra lo siguiente:

    • 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"

    En el ejemplo anterior, se ilustra lo siguiente:

    • 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?