Gunakan OSS SDK untuk Go 2.0 guna membuat, mengunci, mengkueri, dan mengelola kebijakan retensi berbasis waktu (WORM) pada bucket. Periode retensi berkisar antara 1 hari hingga 70 tahun.
Catatan penggunaan
Kode contoh menggunakan ID wilayah
cn-hangzhouuntuk wilayah China (Hangzhou). Secara default, titik akhir publik digunakan untuk mengakses sumber daya dalam bucket. Untuk mengakses sumber daya dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi selengkapnya, lihat Wilayah dan titik akhir OSS.Kredensial akses dalam kode contoh dimuat dari variabel lingkungan. Untuk petunjuk konfigurasi, lihat Konfigurasikan kredensial akses.
Ringkasan API
| Operasi | Metode | Status yang diperlukan |
|---|---|---|
| Buat kebijakan retensi | InitiateBucketWorm | — |
| Batalkan kebijakan retensi | AbortBucketWorm | InProgress |
| Kunci kebijakan retensi | CompleteBucketWorm | InProgress |
| Kueri kebijakan retensi | GetBucketWorm | Any |
| Perpanjang periode retensi | ExtendBucketWorm | Locked |
Batalkan kebijakan retensi
Hanya kebijakan dalam status InProgress (belum terkunci) yang dapat dibatalkan. Panggil AbortBucketWorm untuk menghapusnya.
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"
)
var (
region string
bucketName string
)
func init() {
flag.StringVar(®ion, "region", "", "Wilayah tempat bucket berada.")
flag.StringVar(&bucketName, "bucket", "", "Nama bucket.")
}
func main() {
var (
wormId = "worm id" // Ganti dengan WormId yang dikembalikan oleh InitiateBucketWorm.
)
flag.Parse()
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama bucket diperlukan")
}
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, wilayah diperlukan")
}
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := oss.NewClient(cfg)
// Kebijakan harus berada dalam status InProgress sebelum dapat dikunci.
request := &oss.CompleteBucketWormRequest{
Bucket: oss.Ptr(bucketName),
WormId: oss.Ptr(wormId),
}
result, err := client.CompleteBucketWorm(context.TODO(), request)
if err != nil {
log.Fatalf("gagal menyelesaikan bucket worm %v", err)
}
log.Printf("hasil penyelesaian bucket worm:%#v\n", result)
}