利用金山云SDK获取KS3存储值的办法

简介:

之前曾经写过获得金山云云存储KS3的方法,http://chenx1242.blog.51cto.com/10430133/1968857 但是这个方法的缺点很明显,就是“要先list再算值”,消耗时间太多。于是乎还是得用SDK来达到获取值得目的。


比如说我现在想的到js-online-private的"9.29TB"这个值,如图:

2acf391b89fefa11e223a40fdb9b8263.png


使用adk之前,需要先#pip install ksc-sdk-python,整个脚本内容如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env python
# -*- encoding:utf-8 -*-
from  kscore.session  import  get_session
import  json
 
#密钥
ACCESS_KEY_ID  =  "这里填写帐号ak"
SECRET_ACCESS_KEY  =  "这里填写帐号sk"
=  get_session()
 
def  gettodayoss():
         client  =  s.create_client( "monitor" , "区域名称" ,ks_access_key_id = ACCESS_KEY_ID, ks_secret_access_key = SECRET_ACCESS_KEY)
         m = client.get_metric_statistics(InstanceID = "这里填写bucket名" ,Namespace = "ks3" ,MetricName = "ks3.bucket.capacity.total.sd" ,StartTime = "2017-10-22T10:00:00Z" ,EndTime = "2017-10-23T11:00:00Z" ,Period = "86400" ,Aggregate = "sum" )
         data = json.dumps(m,sort_keys = True ,indent = 4 )
         print (data)
 
if  __name__  = =  "__main__" :
         gettodayoss()


执行效果如图:

dad4b8ae28b86e75e6cfedce5c2a5b82.png


单位换算一下:

7cb9c572f1d2bebe6aa247b76eea9a50.png


metric支持如下几个参数:

    ks3.bucket.capacity.total: 总容量(存储量)

    ks3.bucket.capacity.add:增加容量(存储量)

    ks3.bucket.capacity.del: 删除容量(存储量)

    ks3.bucket.flow.up: 上传流量(外网)

    ks3.bucket.flow.down:下载流量(外网)

    ks3.bucket.bandwidth:下载带宽

    ks3.bucket.getcount: get次数

    ks3.bucket.putcount:put次数


这里有几点注意!

1)密钥一定是要填写帐号的ak/sk,而不是云存储权限的ak/sk,我也知道这样填写权限过大,是一个很危险的事儿,但是没办法,金山云就是这么设计的;

2)查看云存储的话,区域名称一定要写cn-beijing-6,因为ks3的监控数据都在北京存储;

3)StartTime和EndTime之间一定要大于24小时;

4)金山云的云存储统计跟阿里云的云存储统计一样都是有延迟的,不过金山云的延迟是一天,也就是说StartTime和EndTime要至少写昨天的;


新的知识点!

例子脚本获到的是一个json的数据结构,那么如何从那一大串内容里得到sum这个值呢?

json的数据结构其实是一个str类型,而它基本上是key/value的,这个类型在python里就是字典,那么就应该有字典的方式去读取。

将json转化成字典类型,一般来说用json模块的read方法。

1
a = json.read(data)

如果发现使用read方法出现了“AttributeError: 'module' object has no attribute 'read'”这个错误,那么就改成loads方法:

1
a = json.loads(data)

那么返回来看一下我们得到的这个json字符串,它最外的一层是getMetricStatisticsResult,然后datapoints,再然后member,然后就是两个值,分别是sum和timestamp,而我们要的是sum。于是乎,经过这一层层好像剥洋葱的过程,要得到sum这个值结尾处应该这么写:

1
2
3
data = json.dumps(m,sort_keys = True ,indent = 4 )
today_storage = json.loads(data)
print  "today:"  +   today_storage[ 'getMetricStatisticsResult' ][ 'datapoints' ][ 'member' ][ 0 ][ 'sum' ]

这样得到的就是单纯的sum值了,如图:

6bd2361e86eede4a2c3e5b6b55df87d0.png



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

wKioL1l16m3BMYDKAACPHEqd55Q687.jpg



 本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1976165

相关文章
|
8月前
|
存储 并行计算 开发工具
SLS Prometheus存储问题之相比客户端SDK聚合写入,SLS网关侧聚合写入有什么优势
SLS Prometheus存储问题之相比客户端SDK聚合写入,SLS网关侧聚合写入有什么优势
|
7月前
|
存储 API 开发工具
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
【Azure 环境】在Azure虚拟机(经典) 的资源中,使用SDK导出VM列表的办法
|
1月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
164 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
7月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
175 0
|
4月前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
149 1
|
5月前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
96 7
|
7月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
251 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
7月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
632 4

热门文章

最新文章

  • 1
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
  • 4
    CompreFace:Star6.1k,Github上火爆的轻量化且强大的人脸识别库,api,sdk都支持
  • 5
    【Azure Developer】编写Python SDK代码实现从China Azure中VM Disk中创建磁盘快照Snapshot
  • 6
    【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
  • 7
    短视频SDK,直播SDK,美颜SDK_提供开放API接口
  • 8
    ti processor sdk linux am335x evm /bin/setup-minicom.sh hacking
  • 9
    常用的工业相机及SDK
  • 10
    ti processor sdk linux am335x evm setup.sh hacking