恢复归档对象

最近更新时间:2024-08-13 11:18:21

我的收藏

简介

本文介绍对象存储 COS 通过 Go SDK 实现恢复归档对象的示例代码和描述。

注意事项

若您想要对一个归档对象做恢复操作,需要具有该对象的回热权限:在您进行 授权策略 时,action 需要设置为cos:PostObjectRestore,更多授权请参见 支持CAM的业务接口

相关示例

功能名称
描述
示例代码
恢复归档对象
一个归档存储或深度归档存储类型的对象进行恢复(解冻)以便读取该对象内容。

使用案例

恢复归档对象

功能说明

将归档类型的对象取回访问(POST Object restore)。

方法原型

func (s *ObjectService) PostRestore(ctx context.Context, key string, opt *ObjectRestoreOptions) (*Response, error)

请求示例

package main

import (
"context"
"github.com/tencentyun/cos-go-sdk-v5"
"net/http"
"net/url"
"os"
)

func main() {
// 存储桶名称,由 bucketname-appid 组成,appid 必须填入,可以在 COS 控制台查看存储桶名称。 https://console.cloud.tencent.com/cos5/bucket
// 替换为用户的 region,存储桶 region 可以在 COS 控制台“存储桶概览”查看 https://console.cloud.tencent.com/ ,关于地域的详情见 https://cloud.tencent.com/document/product/436/6224 。
u, _ := url.Parse("https://examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com")
b := &cos.BaseURL{BucketURL: u}
client := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
// 通过环境变量获取密钥
// 环境变量 SECRETID 表示用户的 SecretId,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capi
SecretID: os.Getenv("SECRETID"), // 用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
// 环境变量 SECRETKEY 表示用户的 SecretKey,登录访问管理控制台查看密钥,https://console.cloud.tencent.com/cam/capi
SecretKey: os.Getenv("SECRETKEY"), // 用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
},
})
key := "example_restore"
f, err := os.Open("/test")
if err != nil {
panic(err)
}
opt := &cos.ObjectPutOptions{
ObjectPutHeaderOptions: &cos.ObjectPutHeaderOptions{
ContentType: "text/html",
XCosStorageClass: "ARCHIVE", //归档类型
},
ACLHeaderOptions: &cos.ACLHeaderOptions{
// 如果不是必要操作,建议上传文件时不要给单个文件设置权限,避免达到限制。若不设置默认继承桶的权限。
XCosACL: "private",
},
}
// 归档直传
_, err = client.Object.Put(context.Background(), key, f, opt)
if err != nil {
panic(err)
}

opts := &cos.ObjectRestoreOptions{
Days: 2,
Tier: &cos.CASJobParameters{
// Standard, Expedited and Bulk
Tier: "Expedited",
},
}
// 归档恢复
_, err = client.Object.PostRestore(context.Background(), key, opts)
if err != nil {
panic(err)
}
}

参数说明

type ObjectRestoreOptions struct {
Days int
Tier *CASJobParameters
}
type CASJobParameters struct {
Tier string
}
参数名称
参数描述
类型
是否必填
key
对象键(Key)是对象在存储桶中的唯一标识。例如,在对象的访问域名 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为 doc/pic.jpg
string
ObjectRestoreOptions
描述取回的临时文件的规则
struct
Days
描述临时文件的过期时间
int
CASJobParameters
描述恢复类型的配置信息
struct
Tier
描述取回临时文件的模式。
若恢复的是归档存储类型数据,可选值为 Expedited、Standard、Bulk,分别对应快速取回模式、标准取回模式以及批量取回模式这三种模式;
若恢复的是深度归档存储类型数据,则可选值为 Standard、Bulk
string

API 操作

恢复归档对象涉及的 API 接口说明,请参见 POST Object restore 文档。