Todos los productos
Search
Centro de documentos

Object Storage Service:Eliminar objetos (Go SDK V2)

Última actualización: Sep 03, 2026

Use el SDK de OSS para Go para eliminar uno o varios objetos de un bucket.

Notas

  • El código de ejemplo usa el ID de región cn-hangzhou correspondiente a China (Hangzhou) y un endpoint público de forma predeterminada. Para acceder a OSS desde otros servicios de Alibaba Cloud en la misma región, use un endpoint interno. Para obtener más información sobre las regiones y los endpoints compatibles, consulte Regions and endpoints.

  • Los ejemplos obtienen las credenciales de acceso de variables de entorno. Para obtener más información, consulte Configure access credentials.

  • Para eliminar un objeto, debe tener el permiso oss:DeleteObject. Para obtener más información, consulte Grant custom permission policies to RAM users.

Firmas de métodos

Eliminar un solo objeto

func (c *Client) DeleteObject(ctx context.Context, request *DeleteObjectRequest, optFns ...func(*Options)) (*DeleteObjectResult, error)

Eliminar varios objetos

func (c *Client) DeleteMultipleObjects(ctx context.Context, request *DeleteMultipleObjectsRequest, optFns ...func(*Options)) (*DeleteMultipleObjectsResult, error)

Parámetros de solicitud

Parámetro

Tipo

Descripción

ctx

context.Context

Contexto de la solicitud; permite establecer un tiempo de espera para la petición.

request

*DeleteObjectRequest

Parámetros de la solicitud, como el nombre del objeto. Para obtener más información, consulte DeleteObjectRequest.

*DeleteMultipleObjectsRequest

Parámetros de la solicitud, como la lista de objetos por eliminar. Para obtener más información, consulte DeleteMultipleObjectsRequest.

optFns

...func(*Options)

(Opcional) Parámetros de configuración de la operación. Para obtener más información, consulte Options.

Parámetros de respuesta

Parámetro

Tipo

Descripción

result

*DeleteObjectResult

Resultado de la operación. Válido únicamente cuando err es nil. Para obtener más información, consulte DeleteObjectResult.

*DeleteMultipleObjectsResult

Resultado de la operación. Válido únicamente cuando err es nil. Para obtener más información, consulte DeleteMultipleObjectsResult.

err

error

Estado de la solicitud. Si la solicitud falla, err no es nil.

Ejemplos

Eliminar un solo objeto

package main

import (
	"context"
	"flag"
	"log"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

// Define global variables.
var (
	region     string // The bucket's region.
	bucketName string // The name of the bucket.
	objectName string // The name of the object.
)

// The init function initializes command-line arguments.
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
	flag.StringVar(&objectName, "object", "", "The name of the object.")
}

func main() {
	// Parse command-line arguments.
	flag.Parse()

	// Check if the bucket name is empty.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// Check if the region is empty.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// Check if the object name is empty.
	if len(objectName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, object name required")
	}

	// Load the default configuration and set the credentials provider and region.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Create an OSS client.
	client := oss.NewClient(cfg)

	// Create a request to delete the object.
	request := &oss.DeleteObjectRequest{
		Bucket: oss.Ptr(bucketName), // The bucket name.
		Key:    oss.Ptr(objectName), // The object name.
	}

	// Delete the object and process the result.
	result, err := client.DeleteObject(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to delete object %v", err)
	}

	// Print the result.
	log.Printf("delete object result:%#v\n", result)
}

Eliminar varios objetos

package main

import (
	"context"
	"flag"
	"log"
	"strings"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

// Define global variables.
var (
	region     string // The region where the bucket is located.
	bucketName string // The name of the bucket.
	objects    string // The object names (comma-separated).
)

// The init function initializes command-line arguments.
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
	flag.StringVar(&objects, "objects", "", "The name of the objects (comma-separated).")
}

func main() {
	// Parse command-line arguments.
	flag.Parse()

	// Check if the bucket name is empty.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// Check if the region is empty.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// Check if the list of object names is empty.
	if len(objects) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, objects name required")
	}

	// Load the default configuration and set the credentials provider and region.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Create an OSS client.
	client := oss.NewClient(cfg)

	// Convert the comma-separated string of object names to a slice.
	var DeleteObjects []oss.DeleteObject
	objectSlice := strings.Split(objects, ",")
	for _, name := range objectSlice {
		DeleteObjects = append(DeleteObjects, oss.DeleteObject{Key: oss.Ptr(strings.TrimSpace(name))})
	}

	// Create a request to delete multiple objects.
	request := &oss.DeleteMultipleObjectsRequest{
		Bucket:  oss.Ptr(bucketName), // The bucket name.
		Delete: &oss.Delete{
			Objects: DeleteObjects, // The list of objects to delete.
		},
	}

	// Delete the objects and process the result.
	result, err := client.DeleteMultipleObjects(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to delete multiple objects %v", err)
	}

	// Print the result.
	log.Printf("delete multiple objects result:%#v\n", result)
}

Referencias