获取金山区云存储容量值的方法

前一篇文章写的是如何获取阿里云的云存储容量方法,现在说一下金山云。

金山云的云存储是不支持sdk的,他的sdk支持面只有以下这么几项:

既然sdk这条路不好使,我们就换一个道,使用金山云提供的ks3util工具。

首先先查看机器是否有java,使用命令#java -version,得到返回值如下:

然后下载ks3util工具,使用命令#wget https://ks3-cn-beijing.ksyun.com/ks3-tools/ks3util-1.1.1-dist.zip  ,然后解压这个文件,进入这个ks3util-1.1.1-dist之后会看到四个文件,分别是:bin、lib、README.html和sample.conf。

首先我们先打开sample.conf,查看这个配置文件内容:

ks3.ak={账户AK} #必填项
ks3.sk={账户SK} #必填项
ks3.endpoint={bucket所在region的endpoint} #必填项
ks3.protocol={协议:http|https} #可选,如果不选就自动认为是http

#http.conn.timeout={http连接超时,一般不需要更改} #可选
#http.so.timeout={http通讯超时,一般不需要更改} #可选
#http.max.connections{http连接数,默认值:100} #可选

#async.queuesize={批量处理时的队列长度,默认:200,该值越大内存使用率越大} #可选
#async.max.threads={批量处理时最大并发数,默认:100} #可选
#async.core.threads={批量处理时最小并发数,默认:CPU核数} #可选

#ks3.movedest.ak={multi-move操作时的目标账号AK} #可选
#ks3.movedest.sk={multi-move操作时的目标账号SK} #可选
#ks3.movedest.endpoint={multi-move操作时的目标Bucket所在的endpoint} #可选

只有前三项是必须填写的,其他项是针对特殊需求填写。按照实际情况来填写sample.conf,这里我们为了安全,在ks3.protocol里先选择https协议,如图:

保存退出之后,在bin文件夹里#chmod 755 ks3util

现在假设我们要获取js-func-test-pubilc这个bucket的大小,在网页控制台上看它的大小是1.94G。

于是我们就在命令行里输入#./ks3util du -b js-func-test-pubilc -c /root/ks3util-1.1.1/sample.conf,-b后面写的是bucket名称,-c后面写的是配置文件路径。

得到的效果如下图:

获得了1.94GB!

如果你觉得http方式很不好,非要使用https的话,那么就在配置文件的ks3.protocol的字段写成https,但是要注意,这样改完,很有可能再获取容量值的时候会失败,显示“Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure”这个错误,这是因为Jdk8 jce安全机制导致访问https会报错。

这个时候去http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html 下载UnlimitedJCEPolicyJDK7.zip,然后将这个文件解压缩,将里面的两个jar包去覆盖jdk安装目录下的jre\lib\security\下同名的jar包就能解决。

如果你又觉得每次在命令行里面加入“-c 配置文件地址”很讨厌,而且这个配置文件又包含了很重要的ak和sk,那么可以把这个配置文件放到/root里然后改名叫.ks3utilconfig,这样每次在命令行里输入就不用再带后面的文件路径了。

最后再说一句,这个方法虽然简单,但是获取值的速度很慢,上面那个例子里获取不到2G的时间大约是4600毫秒,如果获取大约10TB的容量值,估计要跑大约5~6个小时。比如我这个跑了6个小时的血淋淋例子:

最后的最后,如果您觉得本文对您升职加薪有帮助,那么请不吝赞助之手,刷一下下面的二维码,赞助本人继续写更多的博文!

时间: 2024-10-09 13:57:48

获取金山区云存储容量值的方法的相关文章

jquery获取当前元素索引值index()方法(总结)

jquery的index()方法 搜索匹配的元素,并返回相应元素的索引值,从0开始计数. 如果不给 .index() 方法传递参数,那么返回值就是这个jQuery对象集合中第一个元素相对于其同辈元素的位置.如果参数是一组DOM元素或者jQuery对象,那么返回值就是传递的元素相对于原先集合的位置.如果参数是一个选择器,那么返回值就是原先元素相对于选择器匹配元素中的位置.如果找不到匹配的元素,则返回-1. 1 <ul> 2 <li id="foo">foo<

Map四种获取key和value值的方法,以及对map中的元素排序

获取map的值主要有四种方法,这四种方法又分为两类,一类是调用map.keySet()方法来获取key和value的值,另一类则是通过map.entrySet()方法来取值,两者的区别在于,前者主要是先获取到所有的key的集合,当你需要查询value的值的时候需要通过key来查询value,后者则直接将key和value的键值对直接取出来,只用查询一次,对于那种性能更好,我觉得还是用map.entrySet()更好一点,具体请参见map.keySet()和map.EntrySet()的比较,接下

Map四种获取key和value值的方法,以及对map中的元素排序(转)

获取map的值主要有四种方法,这四种方法又分为两类,一类是调用map.keySet()方法来获取key和value的值,另一类则是通过map.entrySet()方法来取值,两者的区别在于,前者主要是先获取到所有的key的集合,当你需要查询value的值的时候需要通过key来查询value,后者则直接将key和value的键值对直接取出来,只用查询一次,对于那种性能更好,我觉得还是用map.entrySet()更好一点,具体请参见map.keySet()和map.EntrySet()的比较,接下

Js与Jq 获取浏览器和对象值的方法

JS and Jquery 都能获取页面元素的宽度,高度和相对位移等数值,那他们之间能相互转换或替代吗,写法又有哪些差异呢?本文将详细为你介绍. 1.Js获取浏览器高度和宽度document.documentElement.clientWidth ==> 浏览器可见区域宽度 document.documentElement.clientHeight ==> 浏览器可见区域高度 document.body.clientWidth ==> BODY对象宽度 document.body.cli

[PDF] - 获取 RadioButtonList 控件值的方法

背景 目标是通过 iTextSharp 读取 PDF 模板,填充内容后以生成新 PDF 文件.利用 福昕PDF编辑器个人版 可以获取到 RadioButtonList 的组名,但是获取不到每一个 RadioButton 的 Value,因而无法进一步对单选框控件赋值. 解决 使用 Adobe LiveCycle Designer 可以读取到 PDF 表单设计元素,找到对应的 RadioBUttonList 元素,即可找到对应的 Value. 范例 var templateFile = Path.

校验获取数据或者返回值的方法,should contain的用法

如上图,验证“首页”是否添加成功,我们就通过验证页面上是否存在“首页”这个关键字,来确认数据是否添加成功 RB的写法如上图,原理是以文本输出“首页”元素内容 且定义该内容的为“${前台一级导航名称}” 然后使用“should contain”API匹配上一部定义的内容 原文地址:https://www.cnblogs.com/becks/p/12593130.html

JS,jQuery获取select标签中选中值的方法

JS方法如下: var obj=document.GetElementById("selectId");//声明一个select框对象 var index=obj.selectedIndex;//获取选中项的索引 var text=obj.options[index].text;//获取选中项的文本 var value=obj.options[index].value;//获取选中项的值 jQuery方法如下 $('#selectId option:selected').text();

js/jquery获取文本框的值与改变文本框的值

我们就用它来学习获取文本框的值及改变文本框的值. 代码如下 复制代码 <script>function get1(){ document.getElementById("txtbox2").value=document.getElementById("txtbox").value; //获取文本框1的值,并赋值给文本框2}</script> <table width="500" border="0"

怎么一次性获取form所有的值?rerialize() 、 serializeArray()方法的使用

from直接提交当然方便,但是有时候需要对数据进行处理再用ajax提交,挨个去获取值未免太麻烦,讲两个一次性获取所有值的方法. 方法1 $("form").serialize(); 返回字符串形式的表单键值对,示例:  "name=value1 & name2 = value2". 方法2 $("form").serializeArray(); 返回数组形式的表单键值对json,示例:  [{"name":"