腾讯云COS产品,本身是按照流量计费的对象存储,默认并不限制带宽。而在某些场景下,如共享或带宽有限的网络中,希望能够限制上传和下载的速率进行限制,以便将剩余带宽资源用于其他应用。这个时候,我们是可以通过x-cos-traffic-limit属性来限制上传和下载的速率的。下面就来实践一下。
首先,我们测试一下我们的环境的网络状况。
通过多次测试取平均值,下载速率大约是2.7MB/s,上传速率大约是600KB/s
我们准备了一个10MB的文件进行测试,使用java SDK进行上传和下载。
通过在上传动作和下载动作前后输出时间,我们可以测试到具体耗时。
测得结果,这里看到上传耗时42秒 速率为243KB/s,下载耗时5秒 速率为2MB/s。
我们分别设置为上传限速150KB/S,下载限速1MB/S,相关设置如下
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);
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 删除。