All Products
Search
Document Center

Object Storage Service:Hapus objek (Go SDK V2)

Last Updated:Apr 03, 2026

Topik ini menjelaskan cara menggunakan Go SDK untuk Object Storage Service (OSS) guna menghapus satu atau beberapa objek.

Catatan

  • Kode contoh dalam topik ini menggunakan ID wilayah cn-hangzhou untuk wilayah China (Hangzhou). Secara default, titik akhir publik digunakan. Untuk mengakses Object Storage Service (OSS) dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan titik akhir.

  • Contoh dalam topik ini memperoleh kredensial akses dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan kredensial akses.

  • Untuk menghapus objek, Anda harus memiliki izin oss:DeleteObject. Untuk informasi selengkapnya, lihat Berikan kebijakan izin kustom kepada Pengguna RAM.

Signature metode

Hapus satu objek

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

Hapus beberapa objek

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

Parameter permintaan

Parameter

Tipe

Deskripsi

ctx

context.Context

Konteks permintaan, yang dapat Anda gunakan untuk mengatur timeout permintaan.

request

*DeleteObjectRequest

Menentukan parameter permintaan, seperti nama objek. Untuk informasi selengkapnya, lihat DeleteObjectRequest.

*DeleteMultipleObjectsRequest

Menentukan parameter permintaan, seperti daftar objek yang akan dihapus. Untuk informasi selengkapnya, lihat DeleteMultipleObjectsRequest.

optFns

...func(*Options)

(Opsional) Menentukan parameter konfigurasi tingkat operasi. Untuk informasi selengkapnya, lihat Options.

Parameter respons

Parameter

Tipe

Deskripsi

result

*DeleteObjectResult

Hasil operasi. Parameter ini hanya berlaku ketikaerrbernilainil. Untuk informasi selengkapnya, lihat DeleteObjectResult.

*DeleteMultipleObjectsResult

Hasil operasi. Parameter ini hanya berlaku ketikaerrbernilainil. Untuk informasi selengkapnya, lihat DeleteMultipleObjectsResult.

err

error

Status permintaan. Jika permintaan gagal,errtidak bernilainil.

Contoh

Hapus satu objek

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

// Definisikan variabel global.
var (
	region     string // Wilayah bucket.
	bucketName string // Nama bucket.
	objectName string // Nama objek.
)

// Fungsi init menginisialisasi argumen command line.
func init() {
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
	flag.StringVar(&objectName, "object", "", "Nama objek.")
}

func main() {
	// Parsing argumen command line.
	flag.Parse()

	// Periksa apakah nama bucket kosong.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket wajib diisi")
	}

	// Periksa apakah wilayah kosong.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, wilayah wajib diisi")
	}

	// Periksa apakah nama objek kosong.
	if len(objectName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama objek wajib diisi")
	}

	// Muat konfigurasi default dan atur penyedia kredensial serta wilayah.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Buat client OSS.
	client := oss.NewClient(cfg)

	// Buat permintaan untuk menghapus objek.
	request := &oss.DeleteObjectRequest{
		Bucket: oss.Ptr(bucketName), // Nama bucket.
		Key:    oss.Ptr(objectName), // Nama objek.
	}

	// Hapus objek dan proses hasilnya.
	result, err := client.DeleteObject(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal menghapus objek %v", err)
	}

	// Cetak hasilnya.
	log.Printf("hasil hapus objek:%#v\n", result)
}

Hapus beberapa objek

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

// Definisikan variabel global.
var (
	region     string // Wilayah tempat bucket berada.
	bucketName string // Nama bucket.
	objects    string // Nama objek (dipisahkan koma).
)

// Fungsi init menginisialisasi argumen command line.
func init() {
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
	flag.StringVar(&objects, "objects", "", "Nama objek (dipisahkan koma).")
}

func main() {
	// Parsing argumen command line.
	flag.Parse()

	// Periksa apakah nama bucket kosong.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama bucket wajib diisi")
	}

	// Periksa apakah wilayah kosong.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, wilayah wajib diisi")
	}

	// Periksa apakah daftar nama objek kosong.
	if len(objects) == 0 {
		flag.PrintDefaults()
		log.Fatalf("parameter tidak valid, nama objek wajib diisi")
	}

	// Muat konfigurasi default dan atur penyedia kredensial serta wilayah.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Buat client OSS.
	client := oss.NewClient(cfg)

	// Konversi string nama objek yang dipisahkan koma menjadi slice.
	var DeleteObjects []oss.DeleteObject
	objectSlice := strings.Split(objects, ",")
	for _, name := range objectSlice {
		DeleteObjects = append(DeleteObjects, oss.DeleteObject{Key: oss.Ptr(strings.TrimSpace(name))})
	}

	// Buat permintaan untuk menghapus beberapa objek.
	request := &oss.DeleteMultipleObjectsRequest{
		Bucket:  oss.Ptr(bucketName), // Nama bucket.
		Delete: &oss.Delete{
			Objects: DeleteObjects, // Daftar objek yang akan dihapus.
		},
	}

	// Hapus objek dan proses hasilnya.
	result, err := client.DeleteMultipleObjects(context.TODO(), request)
	if err != nil {
		log.Fatalf("gagal menghapus beberapa objek %v", err)
	}

	// Cetak hasilnya.
	log.Printf("hasil hapus beberapa objek:%#v\n", result)
}

Referensi