Objek dalam kelas penyimpanan Archive, Cold Archive, dan Deep Cold Archive harus dipulihkan terlebih dahulu sebelum dapat dibaca. Proses pemulihan membuat replika sementara yang berada berdampingan dengan objek arsip aslinya. Setelah periode pemulihan berakhir, replika tersebut akan dihapus secara otomatis. Topik ini menjelaskan cara menggunakan Object Storage Service (OSS) Go SDK untuk memulihkan objek dari kelas penyimpanan Archive, Cold Archive, dan Deep Cold Archive.
Usage notes
Metode RestoreObject hanya dapat dipanggil untuk objek dalam kelas penyimpanan Archive, Cold Archive, atau Deep Cold Archive.
Contoh dalam topik ini menggunakan wilayah China (Hangzhou) dengan ID wilayah
cn-hangzhoudan menggunakan titik akhir publik secara default. Jika Anda mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir yang didukung oleh OSS, lihat Regions and endpoints.Contoh dalam topik ini membaca kredensial akses dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Configure access credentials.
Untuk memulihkan objek, Anda harus memiliki izin
oss:RestoreObject. Untuk informasi selengkapnya, lihat Attach a custom policy to a RAM user.
Method signature
func (c *Client) RestoreObject(ctx context.Context, request *RestoreObjectRequest, optFns ...func(*Options)) (*RestoreObjectResult, error)Request parameters
Parameter | Type | Description |
ctx | context.Context | Konteks permintaan, digunakan untuk menetapkan durasi timeout total permintaan. |
request | *RestoreObjectRequest | Parameter permintaan. Untuk informasi selengkapnya, lihat RestoreObjectRequest. |
optFns | ...func(*Options) | (Opsional) Parameter konfigurasi tingkat operasi. Untuk informasi selengkapnya, lihat Options. |
Tabel berikut menjelaskan parameter umum dari RestoreObjectRequest.
Parameter | Type | Description |
bucket | *string | Nama bucket. |
key | *string | Nama objek. |
versionId | *string | ID versi objek yang akan dipulihkan. Jika Anda tidak menentukan parameter ini, OSS akan memulihkan versi terbaru objek tersebut. |
restoreRequest | *RestoreRequest | Parameter permintaan pemulihan. |
Tabel berikut menjelaskan parameter dari RestoreRequest.
Parameter | Type | Description |
days | int32 | Jumlah hari objek tetap dalam keadaan dipulihkan. Untuk informasi selengkapnya, lihat Restore objects. |
jobParameters | *JobParameters | Parameter yang menentukan prioritas pemulihan. Bidang Tier menentukan waktu yang diperlukan untuk memulihkan objek. Untuk informasi selengkapnya, lihat Restore objects. |
Response parameters
Parameter | Type | Description |
result | *RestoreObjectResult | Nilai kembali API. Nilai ini valid ketika |
err | error | Objek error yang bernilai non-nil jika permintaan gagal. |
Examples
Gunakan kode berikut untuk memulihkan objek dari kelas penyimpanan Archive, Cold Archive, atau Deep Cold Archive:
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 for command-line arguments.
var (
region string // The OSS region.
bucketName string // The bucket name.
objectName string // The object name.
)
// init initializes the command-line flags.
func init() {
flag.StringVar(®ion, "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 flags.
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 credential provider and region.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// Create an OSS client.
client := oss.NewClient(cfg)
// Create a request to restore the object.
request := &oss.RestoreObjectRequest{
Bucket: oss.Ptr(bucketName), // The bucket name.
Key: oss.Ptr(objectName), // The object name.
RestoreRequest: &oss.RestoreRequest{
Days: 3, // Set the restoration period to 3 days.
},
}
// Send the request to restore the object.
result, err := client.RestoreObject(context.TODO(), request)
if err != nil {
log.Fatalf("failed to restore object %v", err)
}
// Print the result.
log.Printf("restore object result:%#v\n", result)
}
Use cases
References
Untuk kode contoh lengkap pemulihan objek, lihat GitHub.
Untuk informasi selengkapnya mengenai operasi API untuk memulihkan objek, lihat RestoreObject.
Untuk informasi selengkapnya tentang cara memulihkan objek, lihat Memulihkan objek.