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:

  1. import "github.com/aliyun/aliyun-oss-go-sdk/oss"
  2. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
  3. if err != nil {
  4. fmt.Println("Error:", err)
  5. os.Exit(-1)
  6. }

使用自定义域名新建Client

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

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

  1. import "github.com/aliyun/aliyun-oss-go-sdk/oss"
  2. // oss.UseCname(true)为开启CNAME。CNAME是指将自定义域名绑定到存储空间上。
  3. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>", oss.UseCname(true))
  4. if err != nil {
  5. fmt.Println("Error:", err)
  6. os.Exit(-1)
  7. }

注意 使用CNAME时,无法进行列举存储空间的操作,因为自定义域名已经绑定到某个特定的存储空间。

使用STS新建Client

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

  1. import "github.com/aliyun/aliyun-oss-go-sdk/oss"
  2. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>", oss.SecurityToken("<yourSecurityToken>"))
  3. if err != nil {
  4. fmt.Println("Error:", err)
  5. os.Exit(-1)
  6. }

更多信息请参见RAM和STS介绍授权访问

设置连接超时时间

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

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

CRC数据校验

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

警告 强烈建议您不要关闭CRC数据校验功能。如果您关闭此功能,则阿里云不保证上传、下载过程数据的完整性。

  1. import "github.com/aliyun/aliyun-oss-go-sdk/oss"
  2. client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>", oss.EnableCRC(false))
  3. if err != nil {
  4. fmt.Println("Error:", err)
  5. os.Exit(-1)
  6. }