Sebelum membaca objek Arsip, Arsip Dingin, atau Arsip Dingin Dalam, Anda harus memulihkannya terlebih dahulu. Saat objek dipulihkan, salinan sementara akan dibuat. Salinan ini ada bersamaan dengan objek aslinya dan secara otomatis dihapus setelah periode pemulihan berakhir. Topik ini menjelaskan cara menggunakan OSS Go SDK untuk memulihkan objek tersebut.
Catatan
Hanya objek Arsip, Arsip Dingin, dan Arsip Dingin Dalam yang mendukung metode RestoreObject.
Kode contoh dalam topik ini menggunakan ID Wilayah China (Hangzhou)
cn-hangzhousebagai contoh. Secara default, titik akhir publik digunakan. Jika Anda ingin mengakses OSS dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan titik akhir OSS.Topik ini memberikan contoh cara membaca kredensial akses dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan kredensial akses.
Untuk memulihkan objek, Anda harus memiliki izin
oss:RestoreObject. Untuk informasi lebih lanjut, lihat Berikan kebijakan akses kustom kepada Pengguna RAM.
Definisi metode
func (c *Client) RestoreObject(ctx context.Context, request *RestoreObjectRequest, optFns ...func(*Options)) (*RestoreObjectResult, error)Parameter permintaan
Parameter | Tipe | Deskripsi |
ctx | context.Context | Konteks permintaan, yang dapat digunakan untuk menetapkan batas waktu total untuk permintaan. |
request | *RestoreObjectRequest | Parameter permintaan untuk operasi. Untuk informasi lebih lanjut, lihat RestoreObjectRequest. |
optFns | ...func(*Options) | (Opsional) Parameter konfigurasi tingkat operasi. Untuk informasi lebih lanjut, lihat Options. |
Tabel berikut menjelaskan parameter umum dari RestoreObjectRequest.
Parameter | Tipe | Deskripsi |
bucket | *string | Nama bucket. |
key | *string | Nama objek. |
versionId | *string | Nomor versi objek yang akan dipulihkan. Jika Anda tidak menetapkan parameter ini, versi terbaru dari objek ditentukan secara default. |
restoreRequest | *RestoreRequest | Parameter permintaan pemulihan. |
Tabel berikut menjelaskan parameter dari RestoreRequest.
Parameter | Tipe | Deskripsi |
days | int32 | Durasi keadaan dipulihkan. Untuk informasi lebih lanjut, lihat Memulihkan objek. |
tier | *string | Waktu yang diperlukan untuk memulihkan objek. Untuk informasi lebih lanjut, lihat Memulihkan objek. |
Nilai kembali
Nilai kembali | Tipe | Deskripsi |
result | *RestoreObjectResult | Nilai kembali dari operasi. Ini valid ketika `err` adalah nil. Untuk informasi lebih lanjut, lihat RestoreObjectResult. |
err | error | Status permintaan. Jika permintaan gagal, `err` tidak nil. |
Kode contoh
Gunakan kode berikut untuk memulihkan objek Arsip, Arsip Dingin, atau Arsip Dingin Dalam:
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 penyimpanan.
bucketName string // Nama bucket.
objectName string // Nama objek.
)
// Fungsi init menginisialisasi parameter baris perintah.
func init() {
flag.StringVar(®ion, "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 kosong.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama bucket diperlukan")
}
// Periksa apakah wilayah kosong.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, wilayah diperlukan")
}
// Periksa apakah nama objek kosong.
if len(objectName) == 0 {
flag.PrintDefaults()
log.Fatalf("parameter tidak valid, nama objek diperlukan")
}
// Muat konfigurasi default dan atur penyedia kredensial dan wilayah.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Buat klien OSS.
client := oss.NewClient(cfg)
// Buat permintaan untuk memulihkan objek.
request := &oss.RestoreObjectRequest{
Bucket: oss.Ptr(bucketName), // Nama bucket.
Key: oss.Ptr(objectName), // Nama objek.
RestoreRequest: &oss.RestoreRequest{
Days: 3, // Tetapkan durasi keadaan dipulihkan menjadi 3 hari.
},
}
// Kirim permintaan untuk memulihkan objek.
result, err := client.RestoreObject(context.TODO(), request)
if err != nil {
log.Fatalf("gagal memulihkan objek %v", err)
}
// Cetak hasil operasi pemulihan.
log.Printf("hasil pemulihan objek:%#v\n", result)
}
Skenario
Referensi (Go SDK V2)
Untuk kode contoh lengkap untuk memulihkan objek, lihat Contoh GitHub.
Untuk informasi lebih lanjut tentang operasi API untuk memulihkan objek, lihat RestoreObject.
Untuk informasi lebih lanjut, lihat Memulihkan objek.