前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >巧用x-cos-traffic-limit header来限制上传下载速率

巧用x-cos-traffic-limit header来限制上传下载速率

原创
作者头像
wainsun
修改2020-03-03 12:24:52
2.1K0
修改2020-03-03 12:24:52
举报
文章被收录于专栏:伟哥专栏

腾讯云COS产品,本身是按照流量计费的对象存储,默认并不限制带宽。而在某些场景下,如共享或带宽有限的网络中,希望能够限制上传和下载的速率进行限制,以便将剩余带宽资源用于其他应用。这个时候,我们是可以通过x-cos-traffic-limit属性来限制上传和下载的速率的。下面就来实践一下。

首先,我们测试一下我们的环境的网络状况。

实践环境网络状况
实践环境网络状况

通过多次测试取平均值,下载速率大约是2.7MB/s,上传速率大约是600KB/s

我们准备了一个10MB的文件进行测试,使用java SDK进行上传和下载。

10MB测试文件
10MB测试文件

通过在上传动作和下载动作前后输出时间,我们可以测试到具体耗时。

测得结果,这里看到上传耗时42秒 速率为243KB/s,下载耗时5秒 速率为2MB/s

未限速的执行时长
未限速的执行时长

我们分别设置为上传限速150KB/S,下载限速1MB/S,相关设置如下

代码语言:javascript
复制
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, localFile);
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setContentType("text/html");
objectMetadata.setHeader("x-cos-traffic-limit",String.valueOf(1024*8*150));//限速设置
putObjectRequest.setMetadata(objectMetadata);
PutObjectResult putObjectResult = cosclient.putObject(putObjectRequest);
代码语言:javascript
复制
File downFile = new File("10MB.txt");
GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
getObjectRequest.setTrafficLimit(1024*1024*8*1);//限速设置
ObjectMetadata downObjectMeta = cosclient.getObject(getObjectRequest, downFile);

执行结果看到,上传耗时68秒,速率为150KB/S,下载耗时10秒,速率为1MB/S,与我们的设置匹配,实践成功

限速后的执行时长
限速后的执行时长

以上就是JAVA sdk中的限速用法和实践,有需要的小伙伴,可以参照使用。单链接限速文档请参考https://cloud.tencent.com/document/product/436/40140

目前COS SDK的其他语言和工具也在陆续补齐和更新中,大家可以关注每个SDK和工具的文档说明,谢谢。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档