Tüm Ürünler
Search
Belge Merkezi

:Nesneleri silme (Go SDK V2)

Son Güncelleme:Oct 01, 2026

Bir paketten tek veya birden çok nesneyi silmek için Go için OSS SDK'yı kullanın.

Notlar

  • Örnek kod, varsayılan olarak Çin (Hangzhou) bölgesi için cn-hangzhou bölge kimliğini ve genel bir uç nokta kullanır. Aynı bölgedeki diğer Alibaba Cloud hizmetlerinden OSS'e erişmek için dahili uç nokta kullanın. Desteklenen bölgeler ve uç noktalar hakkında daha fazla bilgi için bkz. Bölgeler ve uç noktalar.

  • Örnekler, erişim kimlik bilgilerini ortam değişkenlerinden alır. Daha fazla bilgi için bkz. Erişim kimlik bilgilerini yapılandırma.

  • Bir nesneyi silmek için oss:DeleteObject iznine sahip olmanız gerekir. Daha fazla bilgi için bkz. RAM kullanıcılarına özel izin ilkeleri atama.

Yöntem imzaları

Tek bir nesne silme

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

Birden çok nesne silme

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

İstek parametreleri

Parametre

Tür

Açıklama

ctx

context.Context

İstek bağlamı; istek zaman aşımı ayarlamak için kullanabilirsiniz.

request

*DeleteObjectRequest

Nesne adı gibi istek parametreleri. Daha fazla bilgi için bkz. DeleteObjectRequest.

*DeleteMultipleObjectsRequest

Silinecek nesne listesi gibi istek parametreleri. Daha fazla bilgi için bkz. DeleteMultipleObjectsRequest.

optFns

...func(*Options)

(İsteğe bağlı) İşlem düzeyi yapılandırma parametreleri. Daha fazla bilgi için bkz. Options.

Yanıt parametreleri

Parametre

Tür

Açıklama

result

*DeleteObjectResult

İşlem sonucu. Yalnızca err değeri nil olduğunda geçerlidir. Daha fazla bilgi için bkz. DeleteObjectResult.

*DeleteMultipleObjectsResult

İşlem sonucu. Yalnızca err değeri nil olduğunda geçerlidir. Daha fazla bilgi için bkz. DeleteMultipleObjectsResult.

err

error

İstek durumu. İstek başarısız olursa err değeri nil değildir.

Örnekler

Tek bir nesne silme

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

Birden çok nesne silme

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

Başvurular