8 "github.com/aliyun/aliyun-oss-go-sdk/oss"
11 // ArchiveSample archives sample
12 func ArchiveSample() {
13 // Create archive bucket
14 client, err := oss.New(endpoint, accessID, accessKey)
19 err = client.CreateBucket(bucketName, oss.StorageClass(oss.StorageArchive))
24 archiveBucket, err := client.Bucket(bucketName)
30 var val = "花间一壶酒,独酌无相亲。 举杯邀明月,对影成三人。"
31 err = archiveBucket.PutObject(objectKey, strings.NewReader(val))
36 // Check whether the object is archive class
37 meta, err := archiveBucket.GetObjectDetailedMeta(objectKey)
42 if meta.Get("X-Oss-Storage-Class") == string(oss.StorageArchive) {
44 err = archiveBucket.RestoreObject(objectKey)
49 // Wait for restore completed
50 meta, err = archiveBucket.GetObjectDetailedMeta(objectKey)
51 for meta.Get("X-Oss-Restore") == "ongoing-request=\"true\"" {
52 fmt.Println("x-oss-restore:" + meta.Get("X-Oss-Restore"))
53 time.Sleep(1000 * time.Second)
54 meta, err = archiveBucket.GetObjectDetailedMeta(objectKey)
58 // Get restored object
59 err = archiveBucket.GetObjectToFile(objectKey, localFile)
65 err = archiveBucket.RestoreObject(objectKey)
67 // Delete object and bucket
68 err = DeleteTestBucketAndObject(bucketName)
73 fmt.Println("ArchiveSample completed")