帮助与文档

我们为你提供丰富、详尽的使用指南以及产品文档

Go SDK

QingStor Go SDK 已在 GitHub 开源,下文为简要使用文档。更多详细信息请参见 https://github.com/yunify/qingstor-sdk-go

安装

可以直接使用 go get 安装:

> go get -u github.com/yunify/qingstor-sdk-go

也可以访问 GitHub 的 release 页面 下载压缩包

要求使用 Go 1.5 或以上的 Go 版本,如果版本是 1.5 还需要设置 GO15VENDOREXPERIMENT=1

快速开始

使用 SDK 之前请先在 青云控制台 申请 access key 。

初始化服务

发起请求前首先建立需要初始化服务:

import (
    "github.com/yunify/qingstor-sdk-go/config"
    qs "github.com/yunify/qingstor-sdk-go/service"
)

configuration, _ := config.New("ACCESS_KEY_ID", "SECRET_ACCESS_KEY")
qsService, _ := qs.Init(configuration)

上面代码初始化了一个 QingStor Service

获取账户下的 Bucket 列表

qsOutput, _ := qsService.ListBuckets(nil)

// Print the HTTP status code.
// Example: 200
fmt.Println(qs.IntValue(qsOutput.StatusCode))

// Print the bucket count.
// Example: 5
fmt.Println(qs.IntValue(qsOutput.Count))

创建 Bucket

初始化并创建 Bucket, 需要指定 Bucket 名称和所在 Zone:

bucket, _ := qsService.Bucket("test-bucket", "pek3a")
putBucketOutput, _ := bucket.Put()

取 Bucket 中存储的 Object 列表

bOutput, _ := bucket.ListObjects(nil)

// Print the HTTP status code.
// Example: 200
fmt.Println(qs.IntValue(bOutput.StatusCode))

// Print the key count.
// Example: 0
fmt.Println(len(bOutput.Keys))

创建一个 Object

例如上传一张屏幕截图:

// Open file
file, _ := os.Open("/tmp/Screenshot.jpg")
defer file.Close()

// Put object
oOutput, _ := bucket.PutObject("Screenshot.jpg", &service.PutObjectInput{Body: file})

// Print the HTTP status code.
// Example: 201
fmt.Println(qs.IntValue(oOutput.StatusCode))

删除一个 Object

oOutput, _ := bucket.DeleteObject("Screenshot.jpg")

// Print the HTTP status code.
// Example: 204
fmt.Println(qs.IntValue(oOutput.StatusCode))

设置 Bucket ACL

bACLOutput, _ := bucket.PutACL(&service.PutBucketACLInput{
    ACL: []*service.ACLType\{\{
        Grantee: &service.GranteeType{
            Type: qs.String("user"),
            ID:   qs.String("usr-xxxxxxxx"),
        },
        Permission: qs.String("FULL_CONTROL"),
    }},
})

// Print the HTTP status code.
// Example: 200
fmt.Println(qs.IntValue(bACLOutput.StatusCode))