传输加速功能利用火山引擎遍布全球的节点和骨干网基础设施,并使用智能路由解析技术,实现请求就近接入,结合优化的网络传输协议,为对象存储提供了安全、全链路、高质量的网络加速解决方案。本文介绍传输加速的应用场景、注意事项、计费说明以及开启和使用传输加速功能的具体操作。
传输加速费用是单独的计费项,不同的场景使用传输加速,计费项不同,常用场景说明如下:
关于传输加速费用的详细介绍,请参见传输加速费用。
类别 | 注意事项 |
---|---|
计费 | 仅使用传输加速功能,才会收取相应费用。开通传输加速功能后,没有使用该功能,则不会收取费用。 |
权限 | 只有 Bucket 拥有者以及被授予 tos:PutBucketTransferAcceleration 权限的用户才可以配置传输加速。关于授权的详细介绍,请参见配置 IAM 策略。 |
生效时间 | 开启或关闭传输加速功能后,预计需要等待 30 分钟,才能生效。 |
日志 | 出于数据传输安全的目的,传输加速功能会视情况使用 HTTPS 协议,即使您在客户端使用 HTTP 协议访问 TOS,在日志中可能看到的是 HTTPS 协议。 |
网络 |
|
使用限制 |
|
操作限制 |
|
说明
在传输加速页面,单击编辑,选择关闭传输加速,单击确定,然后在弹出的对话框,单击确定。完成以上操作后,即可关闭传输加速功能。
传输加速域名默认为 tos-accelerate.volces.com 和 tos-s3-accelerate.volces.com,您也可以在开启传输加速后,在传输加速页面获取传输加速域名,然后您可以使用传输加速域名访问 TOS。
使用 API 访问 TOS 时,您需要将请求 Host
中的域名替换为传输加速的域名,即可使用传输加速功能。以下以 GetObject 为例。
GET /objectName HTTP/1.1 Host: bucketname.tos-accelerate.volces.com Date: Fri, 30 Jul 2021 08:05:36 GMT Authorization: authorization string
使用 SDK 访问 TOS 时,您需要将各语言的 endpoint
替换为传输加速域名,即可使用传输加速功能。以下以 Go 语言的普通上传本地文件为例。关于 SDK 文档详细介绍,请参见 SDK 概览。
package main import ( "context" "fmt" "github.com/volcengine/ve-tos-golang-sdk/v2/tos" ) func checkErr(err error) { if err != nil { if serverErr, ok := err.(*tos.TosServerError); ok { fmt.Println("Error:", serverErr.Error()) fmt.Println("Request ID:", serverErr.RequestID) fmt.Println("Response Status Code:", serverErr.StatusCode) fmt.Println("Response Header:", serverErr.Header) fmt.Println("Response Err Code:", serverErr.Code) fmt.Println("Response Err Msg:", serverErr.Message) } else if clientErr, ok := err.(*tos.TosClientError); ok { fmt.Println("Error:", clientErr.Error()) fmt.Println("Client Cause Err:", clientErr.Cause.Error()) } else { fmt.Println("Error:", err) } panic(err) } } func main() { var ( accessKey = os.Getenv("TOS_ACCESS_KEY") secretKey = os.Getenv("TOS_SECRET_KEY") // 使用传输加速功能,填写传输加速的 endpoint endpoint = "https://tos-accelerate.volces.com" region = "cn-beijing" // 填写 BucketName bucketName = "*** Provide your bucket name ***" // 将文件上传到 example_dir 目录下的 example.txt 文件 objectKey = "example_dir/example.txt" ctx = context.Background() ) // 初始化客户端 client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey))) checkErr(err) // 直接使用文件路径上传文件 output, err := client.PutObjectFromFile(ctx, &tos.PutObjectFromFileInput{ PutObjectBasicInput: tos.PutObjectBasicInput{ Bucket: bucketName, Key: objectKey, }, FilePath: "./example.txt", }) checkErr(err) fmt.Println("PutObjectV2 Request ID:", output.RequestID) }
您需要在使用 config
命令进行初始化配置时,设置 Endpoint 为传输加速域名,具体操作,请参见步骤一:初始化配置。示例如下:
# -i 参数指定账号/子账号的 access key # -k 参数指定账号/子账号的 secret key # -e 参数指定访问的 endpoint # -re 参数指定访问的 region ./tosutil config -i <access key> -k <secret key> -e tos-accelerate.volces.com -re <region>
完成初始化配置后,即可在 tosutil 使用传输加速功能。
您可以在登录 TOS Browser 时,设置登录方式为 AK登录,Endpoint 类型为自定义,并输入传输加速域名。登录后,即可在 TOS Browser 使用传输加速功能。具体操作,请参见使用 AK 登录 TOS Browser。
在浏览器访问文件时,您需要将文件 URL 中默认域名替换为传输加速域名,替换后,即可在浏览器使用传输加速功能访问文件。例如将 https://bucketname.tos-cn-beijing.volces.com/abc.jpg
替换为 https://bucketname.tos-accelerate.volces.com/abc.jpg
。
您可以使用网络测速工具来检测传输加速对客户端访问某个地域 TOS 的影响,比较开启传输加速和未开启传输加速时的访问速度,以评估传输加速的效果。
说明
选择地域时,您可以选择多个地域,同时测试从客户端访问多个地域的速度。
TOS 支持统计传输加速的流量,您可以在用量统计页面查看一定时间内传输加速中国内地到中国内地流入流量、传输加速中国内地以外地区到中国内地流出流量等内容,详细介绍,请参见用量统计。