Tous les produits
Search
Centre de documentation

Object Storage Service:Supprimer des objets (SDK Go V2)

Dernière mise à jour :Aug 18, 2026

Utilisez le SDK OSS pour Go afin de supprimer un ou plusieurs objets d'un bucket.

Notes

  • L'exemple de code utilise par défaut l'ID de région cn-hangzhou pour la région Chine (Hangzhou) et un endpoint public. Pour accéder à OSS depuis d'autres services Alibaba Cloud dans la même région, utilisez un endpoint interne. Pour plus d'informations sur les régions et endpoints pris en charge, consultez la rubrique Régions et endpoints.

  • Les exemples récupèrent les identifiants d'accès à partir des variables d'environnement. Pour plus d'informations, consultez la rubrique Configurer les identifiants d'accès.

  • Pour supprimer un objet, vous devez disposer de l'autorisation oss:DeleteObject. Pour plus d'informations, consultez la rubrique Accorder des politiques d'autorisation personnalisées aux utilisateurs RAM.

Signatures de méthode

Supprimer un seul objet

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

Supprimer plusieurs objets

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

Paramètres de requête

Paramètre

Type

Description

ctx

context.Context

Contexte de la requête, utilisé pour définir un délai d'expiration.

request

*DeleteObjectRequest

Paramètres de la requête, tels que le nom de l'objet. Pour plus d'informations, consultez DeleteObjectRequest.

*DeleteMultipleObjectsRequest

Paramètres de la requête, tels que la liste des objets à supprimer. Pour plus d'informations, consultez DeleteMultipleObjectsRequest.

optFns

...func(*Options)

(Facultatif) Paramètres de configuration au niveau de l'opération. Pour plus d'informations, consultez Options.

Paramètres de réponse

Paramètre

Type

Description

result

*DeleteObjectResult

Résultat de l'opération. Valide uniquement si err est nil. Pour plus d'informations, consultez DeleteObjectResult.

*DeleteMultipleObjectsResult

Résultat de l'opération. Valide uniquement si err est nil. Pour plus d'informations, consultez DeleteMultipleObjectsResult.

err

error

Statut de la requête. Si la requête échoue, err n'est pas nil.

Exemples

Supprimer un seul objet

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)
}

Supprimer plusieurs objets

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)
}

Références