如果您希望实现Bucket远距离数据传输加速,例如从中国内地向非中国内地Bucket请求加速上传或下载文件,您可以开启传输加速。传输加速利用全球分布的云机房,将全球各地用户对Bucket的访问,经过智能路由解析至就近的接入点,使用优化后的网络及协议,为云存储的上传、下载提供端到端的加速方案。
前提条件
当前账号已完成实名认证。具体步骤,请参见如何处理阿里云账号未实名认证而导致免费版企业邮箱到期后自动延期失败的问题?。
使用场景
远距离数据传输加速
例如全球论坛、在线协同办公平台等,部分客户会因传输距离较远导致上传和下载体验非常差。传输加速功能可以让全球各地的客户使用优化后的网络来传输数据,极大地提升上传和下载速度,让不同地域的用户都能有很好的访问体验。
GB、TB级大文件上传和下载
通过互联网远距离上传和下载大文件时,经常会因为网络延迟过大而导致传输失败。传输加速功能使用优化的互联网传输链路、调优的协议栈与传输算法,可大幅减少远距离互联网传输超时的比例。您还可以结合使用传输加速功能与分片上传、断点续传下载,形成远距离大文件上传和下载的解决方案。
非静态、非热点数据下载加速
例如相册应用、游戏、电商、社交应用的评论内容、企业门户网站、金融类APP等,用户的下载体验直接影响产品竞争力和客户留存率。传输加速功能作为专为OSS上传、下载加速而设计的功能,可以最大限度利用客户端的网络能力,提升用户的下载体验。
注意事项
通过传输加速Endpoint上传数据时,会产生加速上传流量。通过传输加速Endpoint下载数据时,会产生加速下载流量,同时会与OSS外网流出流量同时计算。例如,通过传输加速Endpoint从开启传输加速功能的存储空间中下载了1 GB的数据,则会产生1 GB传输加速费用和1 GB外网流出流量费用。更多信息,请参见传输加速费用和流量费用。
开启传输加速功能后,必须使用OSS的传输加速域名才会提升访问速度。此外,OSS提供的默认Endpoint仍可正常使用。在不需要传输加速的场景中,您可以使用默认Endpoint以减少传输加速的费用。关于默认Endpoint,请参见OSS地域和访问域名。
传输加速Endpoint仅支持HTTP/HTTPS协议的API接入,不支持RTMP协议等非HTTP/HTTPS协议的API接入。
为保证数据传输安全,传输加速后端加速逻辑会视情况选择使用HTTPS协议进行数据传输。所以,客户端使用HTTP协议通过传输加速域名访问OSS时,在OSS的访问日志中查看到访问协议可能是HTTPS。
开启传输加速
开启传输加速后,Bucket会新增以下两种传输加速Endpoint,同时保留默认Endpoint。
全球加速Endpoint:地址为
oss-accelerate.aliyuncs.com
。传输加速接入点分布在全球各地,全球各地的Bucket均可以使用该域名进行传输加速。非中国内地加速Endpoint:地址为
oss-accelerate-overseas.aliyuncs.com
。传输加速接入点分布在除中国内地以外的各地域,仅在中国香港及海外各地域Bucket绑定未备案的域名做CNAME指向时使用。
您可以通过以下多种方式开启传输加速。
使用OSS控制台
登录OSS管理控制台。
单击Bucket 列表,然后单击目标Bucket名称。
在左侧导航栏,选择Bucket 配置>传输加速。
在传输加速页面,打开开启传输加速开关,然后在弹出的对话框单击确定。
传输加速开启操作会在30分钟内全网生效。关闭传输加速操作也需要在30分钟内全网生效。
使用阿里云SDK
以下仅列举常见SDK开启传输加速的代码示例。关于其他SDK的开启传输加速的代码示例,请参见SDK简介。
import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
public class Demo {
public static void main(String[] args) throws Exception {
// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// 填写Bucket名称,例如examplebucket。
String bucketName = "examplebucket";
// 填写Bucket所在地域。以华东1(杭州)为例,Region填写为cn-hangzhou。
String region = "cn-hangzhou";
// 创建OSSClient实例。
// 当OSSClient实例不再使用时,调用shutdown方法以释放资源。
ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
OSS ossClient = OSSClientBuilder.create()
.endpoint(endpoint)
.credentialsProvider(credentialsProvider)
.clientConfiguration(clientBuilderConfiguration)
.region(region)
.build();
try {
// 设置Bucket的传输加速状态。
// 当设置enabled为true时,表示开启传输加速;当设置enabled为false时,表示关闭传输加速。
boolean enabled = true;
ossClient.setBucketTransferAcceleration(bucketName, enabled);
} catch (OSSException oe) {
System.out.println("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason.");
System.out.println("Error Message:" + oe.getErrorMessage());
System.out.println("Error Code:" + oe.getErrorCode());
System.out.println("Request ID:" + oe.getRequestId());
System.out.println("Host ID:" + oe.getHostId());
} catch (ClientException ce) {
System.out.println("Caught an ClientException, which means the client encountered "
+ "a serious internal problem while trying to communicate with OSS, "
+ "such as not being able to access the network.");
System.out.println("Error Message:" + ce.getMessage());
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
import argparse
import alibabacloud_oss_v2 as oss
# 创建命令行参数解析器,并描述脚本用途:设置存储空间传输加速配置(Transfer Acceleration)
parser = argparse.ArgumentParser(description="put bucket transfer acceleration sample")
# 定义命令行参数,包括必需的区域、存储空间名称、endpoint以及是否启用传输加速
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
parser.add_argument('--enabled', help='Whether the transfer acceleration is enabled for this bucket. Default is False.', default=False, type=bool)
def main():
# 解析命令行参数,获取用户输入的值
args = parser.parse_args()
# 从环境变量中加载访问凭证信息,用于身份验证
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# 使用SDK默认配置创建配置对象,并设置认证提供者
cfg = oss.config.load_default()
cfg.credentials_provider = credentials_provider
# 设置配置对象的区域属性,根据用户提供的命令行参数
cfg.region = args.region
# 如果提供了自定义endpoint,则更新配置对象中的endpoint属性
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# 使用上述配置初始化OSS客户端,准备与OSS交互
client = oss.Client(cfg)
# 发送请求以设置指定存储空间的传输加速配置
result = client.put_bucket_transfer_acceleration(oss.PutBucketTransferAccelerationRequest(
bucket=args.bucket, # 存储空间名
transfer_acceleration_configuration=oss.TransferAccelerationConfiguration(
enabled=args.enabled, # 是否启用传输加速
),
))
# 打印操作结果的状态码和请求ID,以便确认请求状态
print(f'status code: {result.status_code},'
f' request id: {result.request_id},'
)
# 当此脚本被直接执行时,调用main函数开始处理逻辑
if __name__ == "__main__":
main() # 脚本入口点,控制程序流程从这里开始
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
// 定义全局变量
var (
region string // 存储区域
bucketName string // 存储空间名称
)
// init函数用于初始化命令行参数
func init() {
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.")
flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}
func main() {
// 解析命令行参数
flag.Parse()
// 检查bucket名称是否为空
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
// 检查region是否为空
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
// 加载默认配置并设置凭证提供者和区域
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
// 创建OSS客户端
client := oss.NewClient(cfg)
// 创建设置存储空间传输加速的请求
request := &oss.PutBucketTransferAccelerationRequest{
Bucket: oss.Ptr(bucketName), // 存储空间名称
TransferAccelerationConfiguration: &oss.TransferAccelerationConfiguration{
Enabled: oss.Ptr(true), // 启用传输加速
},
}
// 执行设置存储空间传输加速的请求
result, err := client.PutBucketTransferAcceleration(context.TODO(), request)
if err != nil {
log.Fatalf("failed to put bucket transfer acceleration %v", err)
}
// 打印设置存储空间传输加速的结果
log.Printf("put bucket transfer acceleration result:%#v\n", result)
}
<?php
// 引入自动加载文件 加载依赖库
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// 定义命令行参数描述
$optsdesc = [
"region" => ['help' => 'The region in which the bucket is located.', 'required' => True], // 区域是必填项 存储空间所在的区域
"endpoint" => ['help' => 'The domain names that other services can use to access OSS.', 'required' => False], // 终端节点是可选项 其他服务可以用来访问OSS的域名
"bucket" => ['help' => 'The name of the bucket', 'required' => True], // 存储空间名称是必填项
];
// 生成长选项列表 用于解析命令行参数
$longopts = \array_map(function ($key) {
return "$key:"; // 每个参数后面加冒号 表示需要值
}, array_keys($optsdesc));
// 解析命令行参数
$options = getopt("", $longopts);
// 检查必填参数是否缺失
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: the following arguments are required: --$key, $help"; // 提示用户缺少必填参数
exit(1);
}
}
// 获取命令行参数值
$region = $options["region"]; // 存储空间所在区域
$bucket = $options["bucket"]; // 存储空间名称
// 使用环境变量加载凭证信息 AccessKeyId 和 AccessKeySecret
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// 使用SDK的默认配置
$cfg = Oss\Config::loadDefault();
// 设置凭证提供者
$cfg->setCredentialsProvider($credentialsProvider);
// 设置区域
$cfg->setRegion($region);
// 如果提供了终端节点 则设置终端节点
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// 创建OSS客户端实例
$client = new Oss\Client($cfg);
// 创建开启存储空间传输加速功能的请求对象
$request = new Oss\Models\PutBucketTransferAccelerationRequest(
bucket: $bucket, // 存储空间名称
transferAccelerationConfiguration: new Oss\Models\TransferAccelerationConfiguration(
enabled: true // 启用传输加速功能
)
);
// 调用putBucketTransferAcceleration方法开启存储空间的传输加速功能
$result = $client->putBucketTransferAcceleration($request);
// 打印返回结果
printf(
'status code:' . $result->statusCode . PHP_EOL . // HTTP响应状态码
'request id:' . $result->requestId . PHP_EOL // 请求的唯一标识
);
使用命令行工具ossutil
您可以使用命令行工具ossutil来开启传输加速,ossutil的安装请参见安装ossutil。
以下命令用于为存储空间examplebucket配置传输加速。
ossutil api put-bucket-transfer-acceleration --bucket examplebucket --transfer-acceleration-configuration "{\"Enabled\":\"true\"}"
关于该命令的更多信息,请参见put-bucket-transfer-acceleration。
使用传输加速
使用浏览器
通过浏览器访问OSS时,将文件URL的Endpoint字段替换为传输加速Endpoint,例如https://test.oss-cn-shenzhen.aliyuncs.com/myphoto.jpg
需改为https://test.oss-accelerate.aliyuncs.com/myphoto.jpg
。如果文件访问权限为私有,则还需要加上签名信息。
使用命令行工具ossutil
通过ossutil访问OSS时持久启用传输加速功能,您可以将配置文件内的Endpoint替换为传输加速Endpoint。
首先,找到并打开ossutil的配置文件。默认情况下,配置文件位于以下路径:
Linux:
/home/user/.ossutilconfig
Windows:
C:\Users\user\.ossutilconfig
macOS:
/Users/user/.ossutilconfig
如果您在配置ossutil时指定了不同的路径,请使用您指定的路径。
修改Endpoint,在配置文件中,找到
endpoint
字段,并将其值修改为传输加速Endpoint:[Credentials] endpoint = oss-accelerate.aliyuncs.com accessKeyID = yourAccessKeyID accessKeySecret = yourAccessKeySecret region=cn-hangzhou
保存对配置文件的修改。
在使用ossutil相关命令时,还可以在命令示例中增加
-e oss-accelerate.aliyuncs.com
,仅对当前命令有效。以下命令表示在cp命令上传场景中使用了传输加速Endpoint。ossutil cp /path/to/local/file oss://examplebucket/exampleobject -e oss-accelerate.aliyuncs.com
使用图形化管理工具ossbrowser 2.0
各配置项说明如下:
参数 | 说明 |
AccessKeyID、AccessKeySecret | 填写账号的AccessKey(AK)信息。获取AccessKey的方式,请参见创建AccessKey。 重要 为保证数据安全,推荐您使用RAM用户的AccessKey登录ossbrowser 2.0。使用RAM用户登录之前,需要为RAM用户授予 |
Endpoint | 选择指定域名,并填写传输加速Endpoint |
预设OSS路径 | 当您只拥有Bucket中某部分资源权限时,需填写OSS资源路径,示例如下:
|
默认地域 | 请选择目标Bucket所处地域。 |
配置示例如下:
使用阿里云SDK
通过各语言SDK访问OSS时,将Endpoint设置为传输加速Endpoint,此处以简单上传和简单下载为例介绍。
简单上传
import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.common.auth.*; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSException; import com.aliyun.oss.model.PutObjectRequest; import java.io.File; public class Demo { public static void main(String[] args) throws Exception { // 填写传输加速Endpoint。以全球加速Endpoint为例。 String endpoint = "https://oss-accelerate.aliyuncs.com"; // 强烈建议不要把访问凭证保存到工程代码里,否则可能导致访问凭证泄露,威胁您账号下所有资源的安全。本代码示例以从环境变量中获取访问凭证为例。运行本代码示例之前,请先配置环境变量。 EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // 填写Bucket名称,例如examplebucket。 String bucketName = "examplebucket"; // 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。 String objectName = "exampledir/exampleobject.txt"; // 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。 // 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。 String filePath= "D:\\localpath\\examplefile.txt"; // 填写Bucket所在地域。以华东1(杭州)为例,Region填写为cn-hangzhou。 String region = "cn-hangzhou"; // 创建OSSClient实例。 ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); // 显式声明使用V4签名 clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); try { // 创建PutObjectRequest对象。 PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, filePath); // 如果需要上传时设置存储类型和访问权限,请参考以下示例代码。 // ObjectMetadata metadata = new ObjectMetadata(); // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString()); // metadata.setObjectAcl(CannedAccessControlList.Private); // putObjectRequest.setMetadata(metadata); // 上传文件。 ossClient.putObject(putObjectRequest); } catch (OSSException oe) { System.out.println("Caught an OSSException, which means your request made it to OSS, " + "but was rejected with an error response for some reason."); System.out.println("Error Message:" + oe.getErrorMessage()); System.out.println("Error Code:" + oe.getErrorCode()); System.out.println("Request ID:" + oe.getRequestId()); System.out.println("Host ID:" + oe.getHostId()); } catch (ClientException ce) { System.out.println("Caught an ClientException, which means the client encountered " + "a serious internal problem while trying to communicate with OSS, " + "such as not being able to access the network."); System.out.println("Error Message:" + ce.getMessage()); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }
package main import ( "context" "flag" "log" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" ) // 定义全局变量 var ( region string // 存储区域 bucketName string // 存储空间名称 objectName string // 对象名称 ) // init函数用于初始化命令行参数 func init() { flag.StringVar(®ion, "region", "", "The region in which the bucket is located.") flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.") flag.StringVar(&objectName, "object", "", "The name of the object.") } func main() { // 解析命令行参数 flag.Parse() // 检查bucket名称是否为空 if len(bucketName) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, bucket name required") } // 检查region是否为空 if len(region) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, region required") } // 检查object名称是否为空 if len(objectName) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, object name required") } // 加载默认配置并设置凭证提供者和区域 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion(region). WithEndpoint("oss-accelerate.aliyuncs.com") // 设置加速域名 // 创建OSS客户端 client := oss.NewClient(cfg) // 填写要上传的本地文件路径和文件名称,例如 /Users/localpath/exampleobject.txt localFile := "/Users/localpath/exampleobject.txt" // 创建上传对象的请求 putRequest := &oss.PutObjectRequest{ Bucket: oss.Ptr(bucketName), // 存储空间名称 Key: oss.Ptr(objectName), // 对象名称 StorageClass: oss.StorageClassStandard, // 指定对象的存储类型为标准存储 Acl: oss.ObjectACLPrivate, // 指定对象的访问权限为私有访问 } // 执行上传对象的请求 result, err := client.PutObjectFromFile(context.TODO(), putRequest, localFile) if err != nil { log.Fatalf("failed to put object from file %v", err) } // 打印上传对象的结果 log.Printf("put object result:%#v\n", result) }
简单下载
import com.aliyun.oss.ClientException; import com.aliyun.oss.OSS; import com.aliyun.oss.common.auth.*; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.OSSException; import com.aliyun.oss.model.GetObjectRequest; import java.io.File; public class Demo { public static void main(String[] args) throws Exception { // 填写传输加速Endpoint。以全球加速Endpoint为例。 String endpoint = "https://oss-accelerate.aliyuncs.com"; // 强烈建议不要把访问凭证保存到工程代码里,否则可能导致访问凭证泄露,威胁您账号下所有资源的安全。本代码示例以从环境变量中获取访问凭证为例。运行本代码示例之前,请先配置环境变量。 EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // 填写Bucket名称,例如examplebucket。 String bucketName = "examplebucket"; // 填写不包含Bucket名称在内的Object完整路径,例如testfolder/exampleobject.txt。 String objectName = "testfolder/exampleobject.txt"; String filePath = "D:\\localpath\\examplefile.txt"; // 填写Bucket所在地域。以华东1(杭州)为例,Region填写为cn-hangzhou。 String region = "cn-hangzhou"; // 创建OSSClient实例。 ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration(); // 显式声明使用V4签名 clientBuilderConfiguration.setSignatureVersion(SignVersion.V4); OSS ossClient = OSSClientBuilder.create() .endpoint(endpoint) .credentialsProvider(credentialsProvider) .clientConfiguration(clientBuilderConfiguration) .region(region) .build(); try { // 下载Object到本地文件,并保存到指定的本地路径中。如果指定的本地文件存在会覆盖,不存在则新建。 // 如果未指定本地路径,则下载后的文件默认保存到示例程序所属项目对应本地路径中。 ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(filePath)); } catch (OSSException oe) { System.out.println("Caught an OSSException, which means your request made it to OSS, " + "but was rejected with an error response for some reason."); System.out.println("Error Message:" + oe.getErrorMessage()); System.out.println("Error Code:" + oe.getErrorCode()); System.out.println("Request ID:" + oe.getRequestId()); System.out.println("Host ID:" + oe.getHostId()); } catch (ClientException ce) { System.out.println("Caught an ClientException, which means the client encountered " + "a serious internal problem while trying to communicate with OSS, " + "such as not being able to access the network."); System.out.println("Error Message:" + ce.getMessage()); } finally { if (ossClient != null) { ossClient.shutdown(); } } } }
package main import ( "context" "flag" "log" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss" "github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials" ) // 定义全局变量 var ( region string // 存储区域 bucketName string // 存储空间名称 objectName string // 对象名称 ) // init函数用于初始化命令行参数 func init() { flag.StringVar(®ion, "region", "", "The region in which the bucket is located.") flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.") flag.StringVar(&objectName, "object", "", "The name of the object.") } func main() { // 解析命令行参数 flag.Parse() // 检查bucket名称是否为空 if len(bucketName) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, bucket name required") } // 检查region是否为空 if len(region) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, region required") } // 检查object名称是否为空 if len(objectName) == 0 { flag.PrintDefaults() log.Fatalf("invalid parameters, object name required") } // 加载默认配置并设置凭证提供者和区域 cfg := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion(region). WithEndpoint("oss-accelerate.aliyuncs.com") // 设置加速域名 // 创建OSS客户端 client := oss.NewClient(cfg) // 填写本地文件路径和文件名称,例如 /Users/localpath/downloadobject.txt localFile := "/Users/localpath/exampleobject.txt" // 创建下载对象到本地文件的请求 getRequest := &oss.GetObjectRequest{ Bucket: oss.Ptr(bucketName), // 存储空间名称 Key: oss.Ptr(objectName), // 对象名称 } // 执行下载对象到本地文件的操作并处理结果 result, err := client.GetObjectToFile(context.TODO(), getRequest, localFile) if err != nil { log.Fatalf("failed to get object to file %v", err) } log.Printf("Get object sucessfully, Result: HTTPStatusCode=%d, ContentLength=%d\n", result.StatusCode, result.ContentLength) }
测试传输加速效果
使用命令行工具ossutil
通过在ossutil命令示例中测试未开启传输加速前(即使用-e oss-us-west-1.aliyuncs.com
)以及开启传输加速后(即使用-e oss-accelerate.aliyuncs.com
)上传文件所需时间的差异。
使用在线工具
您可以通过OSS互联网连通与测速工具测试您本地访问全球各地数据中心时,开启传输加速与未开启传输加速的访问速度。
常见问题
除传输加速外,OSS是否提供其他加速方案?
是否支持同时配置多种加速方案?
为什么使用传输加速Endpoint无法列举Bucket?
相关API
以上操作方式底层基于API实现,如果您的程序自定义要求较高,您可以直接发起REST API请求。直接发起REST API请求需要手动编写代码计算签名。更多信息,请参见PutBucketTransferAcceleration。