All Products
Search
Document Center

Object Storage Service:Memulihkan file (Go SDK V1)

Last Updated:Nov 29, 2025

Anda harus memulihkan objek Archive, Cold Archive, dan Deep Cold Archive sebelum dapat membacanya. Topik ini menjelaskan cara memulihkan objek-objek tersebut.

Catatan penggunaan

  • Metode RestoreObject hanya dapat digunakan untuk objek Archive, Cold Archive, dan Deep Cold Archive.

  • Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Jika Anda mengakses OSS dari layanan Alibaba Cloud lain yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Wilayah dan titik akhir.

  • Pada topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi selengkapnya tentang cara mengonfigurasi kredensial akses, lihat Konfigurasi kredensial akses.

  • Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Konfigurasi client (Go SDK V1).

  • Untuk memulihkan file, Anda harus memiliki izin oss:RestoreObject. Untuk informasi selengkapnya tentang cara memberikan izin kepada RAM user, lihat Berikan izin kustom kepada RAM user.

Memulihkan objek Archive

Kode berikut menunjukkan cara memulihkan objek Archive:

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, untuk wilayah China (Hangzhou), setel titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah tempat bucket berada. Misalnya, untuk wilayah China (Hangzhou), setel wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Setel versi signature.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Gagal membuat client OSS: %v", err)
	}

	// Tentukan nama bucket. Contoh: examplebucket.
	bucketName := "examplebucket"
	// Tentukan path lengkap objek. Jangan sertakan nama bucket. Contoh: exampledir/exampleobject.txt.
	objectName := "exampledir/exampleobject.txt"

	// Peroleh instans bucket.
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket '%s': %v", bucketName, err)
	}

	// Pulihkan objek Archive.
	err = bucket.RestoreObject(objectName)
	if err != nil {
		log.Fatalf("Gagal memulihkan objek '%s': %v", objectName, err)
	}

	log.Println("ArchiveSample completed")
}

Memulihkan objek Cold Archive atau Deep Cold Archive

Kode berikut menunjukkan cara memulihkan objek Cold Archive atau Deep Cold Archive:

package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Peroleh kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Gagal membuat penyedia kredensial: %v", err)
	}

	// Buat instans OSSClient.
	// Setel yourEndpoint ke titik akhir bucket. Misalnya, untuk wilayah China (Hangzhou), setel titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. Untuk wilayah lain, gunakan titik akhir yang sesuai.
	// Setel yourRegion ke wilayah tempat bucket berada. Misalnya, untuk wilayah China (Hangzhou), setel wilayah ke cn-hangzhou. Untuk wilayah lain, gunakan wilayah yang sesuai.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Setel versi signature.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Gagal membuat client OSS: %v", err)
	}

	// Tentukan nama bucket. Contoh: examplebucket.
	bucketName := "examplebucket"
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		log.Fatalf("Gagal mendapatkan bucket '%s': %v", bucketName, err)
	}

	// Konfigurasi parameter pemulihan.
	var restoreConfig oss.RestoreConfiguration

	// Pilih tier kecepatan pemulihan:
	// Objek dipulihkan dalam waktu 1 jam.
	// restoreConfig.Tier = string(oss.RestoreExpedited)
	// Objek dipulihkan dalam waktu 2 hingga 5 jam.
	// restoreConfig.Tier = string(oss.RestoreStandard)
	// Objek dipulihkan dalam waktu 5 hingga 12 jam.
	restoreConfig.Tier = string(oss.RestoreBulk)

	// Setel jumlah hari objek yang dipulihkan tetap dapat diakses. Nilainya berkisar antara 1 hingga 365.
	restoreConfig.Days = 1

	// Pulihkan objek Cold Archive atau Deep Cold Archive.
	// Setel yourObjectName ke path lengkap objek. Jangan sertakan nama bucket. Contoh: exampledir/exampleobject.txt.
	objectName := "exampledir/exampleobject.txt"
	err = bucket.RestoreObjectDetail(objectName, restoreConfig)
	if err != nil {
		log.Fatalf("Gagal memulihkan objek '%s': %v", objectName, err)
	}

	log.Println("ArchiveSample completed")
}

Referensi

Untuk informasi selengkapnya mengenai operasi API yang digunakan untuk memulihkan objek Archive, Cold Archive, dan Deep Cold Archive, lihat RestoreObject.