Client是OSS的Go客户端,用于管理存储空间和文件等OSS资源。

新建Client时,需要指定Endpoint。有关Endpoint的更多信息,请参见访问域名和数据中心自定义访问域名

可选的参数如下:

参数 说明 默认值
UseCname 是否使用自定义域名CNAME
Timeout 请求超时时间,包括连接超时、Socket读写超时,单位秒 连接超时30秒,读写超时60秒
SecurityToken 临时用户的SecurityToken
EnableMD5 是否开启MD5校验。推荐使用CRC校验,CRC的效率高于MD5
EnableCRC 是否开启CRC校验
Proxy 代理服务器,如http://8.8.8.8:3128
AuthProxy 带账号密码的代理服务器

使用OSS域名新建Client

下面的代码用于使用OSS域名新建Client:

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

client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
if err != nil {
    fmt.Println("Error:", err)
    os.Exit(-1)
}

使用自定义域名新建Client

自定义域名的完整代码请参见GitHub

以下代码用于使用自定义域名新建Client:

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

// oss.UseCname(true)为开启CNAME。CNAME是指将自定义域名绑定到存储空间上。
client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>", oss.UseCname(true))
if err != nil {
    fmt.Println("Error:", err)
    os.Exit(-1)
}
注意 使用CNAME时,无法进行列举存储空间的操作,因为自定义域名已经绑定到某个特定的存储空间。

使用STS新建Client

以下代码用于使用STS新建一个Client:

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

client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>", oss.SecurityToken("<yourSecurityToken>"))
if err != nil {
    fmt.Println("Error:", err)
    os.Exit(-1)
}

更多信息请参见授权访问

设置连接超时时间

以下代码用于设置连接超时时间:

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

// oss.Timeout(10, 120)表示设置HTTP连接超时时间为10秒(默认值为30秒),HTTP读写超时时间为120秒(默认值为60秒)。0表示永不超时(不推荐使用)。
client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>", oss.Timeout(10, 120))
if err != nil {
    fmt.Println("Error:", err)
    os.Exit(-1)
}

CRC数据校验

上传、下载文件时默认开启CRC数据校验,确保上传、下载过程的数据完整性。以下代码用于关闭CRC数据校验:

警告 强烈建议您不要关闭CRC数据校验功能。如果您关闭此功能,则阿里云不保证上传、下载过程数据的完整性。
import "github.com/aliyun/aliyun-oss-go-sdk/oss"

client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>", oss.EnableCRC(false))
if err != nil {
    fmt.Println("Error:", err)
    os.Exit(-1)
}