快照
更新时间:2024-07-02
创建快照
如下代码可以创建一个快照:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "http://bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 args := &api.CreateSnapshotArgs{
18 // 磁盘ID
19 VolumeId: "v-***",
20 SnapshotName: "snapshotName",
21 Description: "create by sdk",
22 }
23 result, err := bccClient.CreateSnapshot(args)
24 if err != nil {
25 fmt.Println("create snapshot failed:", err)
26 } else {
27 fmt.Println("create snapshot success: ", result)
28 }
29}
查询快照列表
如下代码可以查询当前账户下所有快照的列表:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "http://bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 args := &api.ListSnapshotArgs{}
18 result, err := bccClient.ListSnapshot(args)
19 if err != nil {
20 fmt.Println("list all snapshot failed:", err)
21 } else {
22 fmt.Println("list all snapshot success: ", result)
23 }
24}
查询快照详情
如下代码可以查询特定快照的详细信息:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6)
7
8func main() {
9 // 设置您的ak、sk和要访问的endpoint
10 ak := "ak"
11 sk := "sk"
12 endpoint := "http://bcc.bj.baidubce.com"
13 // 创建bcc client
14 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
15
16 // 快照id
17 snapshotId := "s-***"
18 result, err := bccClient.GetSnapshotDetail(snapshotId)
19 if err != nil {
20 fmt.Println("get snapshot detail failed:", err)
21 } else {
22 fmt.Println("get snapshot detail success: ", result)
23 }
24}
删除快照
如下代码可以删除一个快照:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6)
7
8func main() {
9 // 设置您的ak、sk和要访问的endpoint
10 ak := "ak"
11 sk := "sk"
12 endpoint := "http://bcc.bj.baidubce.com"
13 // 创建bcc client
14 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
15
16 // 快照id
17 snapshotId := "s-***"
18 err := bccClient.DeleteSnapshot(snapshotId)
19 if err != nil {
20 fmt.Println("delete snapshot failed:", err)
21 } else {
22 fmt.Println("delete snapshot success")
23 }
24}
查询快照链列表
通过以下代码可以查询快照链列表:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "http://bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 args := &api.ListSnapshotChainArgs{
18 // 设置排序属性:chainId(快照链id,默认值),chainSize(快照链大小),volumeSize(磁盘大小)。可选参数
19 OrderBy: "your-order-by",
20 // 设置排序方式:asc(正序,默认值), desc(倒序)。可选参数
21 Order: "your-order",
22 // 设置每页容量,默认值为1000,可选参数
23 PageSize: 100,
24 // 设置页数,默认为1,可选参数
25 PageNo: 1,
26 // 设置磁盘ID,该字段非空则只返回这个磁盘的快照链信息,可选
27 VolumeId: "v-***",
28 }
29 if res, err := bccClient.ListSnapshotChain(args); err != nil {
30 fmt.Println("get snapshot chain list failed: ", err)
31 } else {
32 fmt.Println("get snapshot chain list success, Snapshots: ", res)
33 }
34}
快照链绑定标签
使用以下代码可以给指定快照链绑定标签:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "http://bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 tagArgs := &api.TagVolumeArgs{
18 ChangeTags: []api.Tag{
19 {
20 TagKey: "Key***",
21 TagValue: "Value***",
22 },
23 },
24 }
25 err := bccClient.TagSnapshotChain("your-chain-id", tagArgs)
26 if err != nil {
27 fmt.Println("tag snapshotChain failed:", err)
28 } else {
29 fmt.Println("tag snapshotChain success")
30 }
31}
快照链解绑标签
使用以下代码可以给指定快照链绑定标签:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "http://bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 tagArgs := &api.TagVolumeArgs{
18 ChangeTags: []api.Tag{
19 {
20 TagKey: "Key***",
21 TagValue: "Value***",
22 },
23 },
24 }
25 err := bccClient.UntagSnapshotChain("your-chain-id", tagArgs)
26 if err != nil {
27 fmt.Println("untag snapshotChain failed:", err)
28 } else {
29 fmt.Println("untag snapshotChain success")
30 }
31}
跨地域复制快照
使用以下代码可以将一份磁盘快照从一个地域复制到其他地域:
Go
1package main
2
3import (
4 "fmt"
5 "github.com/baidubce/bce-sdk-go/services/bcc"
6 "github.com/baidubce/bce-sdk-go/services/bcc/api"
7)
8
9func main() {
10 // 设置您的ak、sk和要访问的endpoint
11 ak := "ak"
12 sk := "sk"
13 endpoint := "bcc.bj.baidubce.com"
14 // 创建bcc client
15 bccClient, _ := bcc.NewClient(ak, sk, endpoint)
16
17 // 快照ID
18 snapshotId := "s-***"
19 args := &api.RemoteCopySnapshotArgs{
20 DestRegionInfos: []api.DestRegionInfo{
21 {
22 // 快照名称
23 Name: "your_snap_name_for_hkg",
24 // 目标区域
25 DestRegion: "hkg",
26 },
27 {
28 // 快照名称
29 Name: "your_snap_name_for_fwh",
30 // 目标区域
31 DestRegion: "fwh",
32 },
33 },
34 }
35
36 // 请求跨地域复制快照
37 result, err := bccClient.CreateRemoteCopySnapshot(snapshotId, args)
38
39 fmt.Println(err)
40 fmt.Println(result)
41}