全部产品
Search
文档中心

Object Storage Service:Hapus objek (Go SDK V2)

更新时间:Nov 09, 2025

Topik ini menjelaskan cara menghapus satu atau beberapa objek menggunakan OSS SDK untuk Go.

Catatan

  • Kode contoh dalam topik ini menggunakan ID wilayah cn-hangzhou, yang sesuai dengan wilayah China (Hangzhou). Secara default, titik akhir publik digunakan untuk mengakses sumber daya dalam bucket. Jika Anda mengakses bucket dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang tersedia untuk Object Storage Service (OSS), lihat Wilayah dan Titik Akhir OSS.

  • Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan kredensial akses.

  • Untuk menghapus objek, Anda harus memiliki izin oss:DeleteObject. Untuk informasi lebih lanjut, lihat Berikan Izin Khusus kepada Pengguna RAM.

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 digunakan untuk menentukan durasi total permintaan.

request

*DeleteObjectRequest

Parameter operasi API, seperti nama objek. Untuk informasi lebih lanjut, kunjungi DeleteObjectRequest.

*DeleteMultipleObjectsRequest

Parameter operasi API, seperti daftar objek yang akan dihapus. Untuk informasi lebih lanjut, kunjungi DeleteMultipleObjectsRequest.

optFns

...func(*Options)

Opsional. Parameter tingkat operasi. Untuk informasi lebih lanjut, lihat Options.

Parameter respons

Parameter pengembalian

Tipe

Deskripsi

result

*DeleteObjectResult

Respons terhadap operasi. Parameter ini valid ketika nilai err adalah nil. Untuk informasi lebih lanjut, kunjungi DeleteObjectResult.

*GetObjectResult

Respons terhadap operasi. Parameter ini valid ketika nilai err adalah nil. Untuk informasi lebih lanjut, kunjungi DeleteMultipleObjectsResult.

err

error

Status permintaan. Jika permintaan gagal, nilai err tidak nil.

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

// Tentukan variabel global.
var (
	region     string // Wilayah tempat bucket berada.
	bucketName string // Nama bucket.
	objectName string // Nama objek.
)

// Tentukan fungsi init yang digunakan untuk menginisialisasi parameter baris perintah.
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 parameter baris perintah.
	flag.Parse()

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

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

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

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

	// Buat klien 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.
	}

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

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

Hapus beberapa objek yang ditentukan

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

// Tentukan variabel global.
var (
	region     string // Wilayah tempat bucket berada.
	bucketName string // Nama bucket.
	objects    string // Daftar nama objek (dipisahkan dengan koma).
)

// Tentukan fungsi init yang digunakan untuk menginisialisasi parameter baris perintah.
func init() {
	flag.StringVar(&region, "region", "", "Wilayah tempat bucket berada.")
	flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
	flag.StringVar(&objects, "objects", "", "Nama objek (dipisahkan dengan koma).")
}

func main() {
	// Parsing parameter baris perintah.
	flag.Parse()

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

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

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

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

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

	// Konversikan daftar nama objek 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.
		Objects: DeleteObjects,       // Daftar objek yang akan dihapus.
	}

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

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

Referensi

  • Untuk informasi lebih lanjut tentang kode contoh lengkap yang digunakan untuk menghapus objek, kunjungi delete_object.go dan delete_mutiple_objects.go.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk menghapus satu objek, lihat DeleteObject.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk menghapus beberapa objek, lihat DeleteMultipleObjects.