巧用x-cos-traffic-limit header来限制上传下载速率
时间:2022-07-27
本文章向大家介绍巧用x-cos-traffic-limit header来限制上传下载速率,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
腾讯云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和工具的文档说明,谢谢。
- hbuilder 开发5+ APP采坑记录
- Spring Cloud如何提供API给客户端
- 5分钟学会Spring Boot自定义属性和自动配置
- 创建一个Spring Security OAuth认证服务
- Zipkin和微服务链路跟踪
- Java8真不用再搞循环了?
- 针对事件驱动架构的Spring Cloud Stream
- Spring的三种Circuit Breaker
- Spring5以来注册Bean的各种姿势,特别最后的纯编码注册值得尝试
- ONOS一键安装脚本
- Spring 5 新增全新的reactive web框架:webflux
- 认证鉴权与API权限控制在微服务架构中的设计与实现(一)
- 在服务器上利用docker快速部署博客—jpress
- NSQ深入与实践
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Yii2.0建立公共方法简单示例
- PHP PDOStatement::execute讲解
- 详解用Python爬虫获取百度企业信用中企业基本信息
- PHP连接及操作PostgreSQL数据库的方法详解
- 使用Keras建立模型并训练等一系列操作方式
- PHP获取ttf格式文件字体名的方法示例
- PHP iconv()函数字符编码转换的问题讲解
- 使用PHP反射机制来构造"CREATE TABLE"的sql语句
- PHP PDOStatement::fetch讲解
- 解决Pytorch自定义层出现多Variable共享内存错误问题
- PHP观察者模式定义与用法实例分析
- ThinkPHP5.1表单令牌Token失效问题的解决
- PHP设计模式之工厂模式(Factory Pattern)的讲解
- keras K.function获取某层的输出操作
- 浅谈sklearn中predict与predict_proba区别