传输加速可提升全球各地用户对OSS的访问速度,适用于远距离数据传输、GB或TB级大文件上传和下载的场景。

注意事项

  • 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心
  • 本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见Go初始化

开启传输加速

以下代码用于开启目标存储空间examplebucket的传输加速功能:

package main

import (
  "fmt"
  "os"

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

func HandleError(err error) {
  fmt.Println("Error:", err)
  os.Exit(-1)
}

func main() {
  // 创建OSSClient实例。
  // Endpoint为Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
  // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
  client, err := oss.New("yourEndpoint", "yourAccessKeyId", "yourAccessKeySecret")
  if err != nil {
    HandleError(err)
  }

  // 填写Bucket名称。
  bucketName := "examplebucket"

  // 开启Bucket的传输加速状态。
  // Enabled表示传输加速的开关,取值为true表示开启传输加速,取值为false表示关闭传输加速。
  accConfig := oss.TransferAccConfiguration{}
  accConfig.Enabled = true

  err = client.SetBucketTransferAcc(bucketName, accConfig)
  if err != nil {
    HandleError(err)
  }
  fmt.Printf("set bucket transfer accelerate success\n")  
}

查询传输加速状态

以下代码用于查询目标存储空间examplebucket的传输加速状态:

package main

import (
  "fmt"
  "os"

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

func HandleError(err error) {
  fmt.Println("Error:", err)
  os.Exit(-1)
}

func main() {
  // 创建OSSClient实例。
  // Endpoint为Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
  // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
  client, err := oss.New("yourEndpoint", "yourAccessKeyId", "yourAccessKeySecret")
  if err != nil {
    HandleError(err)
  }

  // 填写Bucket名称。
  bucketName := "examplebucket"

  // 查询目标Bucket的传输加速状态。
  accConfig, err := client.GetBucketTransferAcc(bucketName)
  if err != nil {
    HandleError(err)
  }

  fmt.Printf("accConfigRes.Enabled:%T\n", accConfig.Enabled)
}

相关文档