利用阿里云SDK获取OSS存储值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用阿里云SDK获取OSS存储值相关的知识,希望对你有一定的参考价值。
为了先说名一下SDK和openAPI的区别,这里借用知乎一位朋友最简单粗暴的回答:
如此的形象生动,我为他点赞!
下面具体说一下阿里云的SDK。
阿里云的SDK使用需要两个前提,第一是要安装他的sdk核心库;第二是要安装具体的服务库。
安装sdk核心库的方法:#pip install aliyun-python-sdk-core。
如果安装的时候报“-bash: pip: command not found”这个错误,那么就要#curl -O https://bootstrap.pypa.io/get-pip.py && python get-pip.py。
如果在安装的时候报“src/MD2.c:31:20: fatal error: Python.h: No such file or directory”错,那么说你缺少Python.h这个头文件,centos的话就用#yum install python-devel,Debian or Ubuntu的话就用#apt-get install python-dev。
安装完了核心库,现在要安装具体的服务库,如果是云服务器ecs,那么语句就是:#pip install aliyun-python-sdk-ecs,如果是云数据库,那么语句就是:#pip install aliyun-python-sdk-rds,所有的sdk 列表在:https://www.alibabacloud.com/help/zh/doc-detail/30003.htm?spm=a3c0i.o53090zh.a3.4.514e2f94lQ71gI 这个网站里。
比如要装OSS云存储的SDK,那么就#pip install oss2,然后在python客户端里查看是否安装成功,如果显示的内容没有报错就是OK的:
现在我要做一个脚本获得bucket的当前容量值,那么我就需要#pip install aliyuncli,然后#pip install -Iv aliyun-python-sdk-cms==5.0.0,如果这个时候出现了“--compile" failed with error code 1 in /tmp/pip-build-6bR4PD/pycrypto”这个错误,那么就执行一下#yum install python-devel.x86_64。
完事之后,执行#aliyuncli configure,按照提示填写对应的access_key、access_secret等值。核心库我们之前安装过了,这里需要安装阿里云监控对应的SDK,#pip install aliyun-python-sdk-cms。
假设我现在要获得这个叫ligentest这个bucket的容量值,也就是下图的6.45GB:
整个的脚本内容如下:
#!/usr/bin/env python # -*- coding: UTF-8 -*- from aliyunsdkcore import client from aliyunsdkcms.request.v20170301 import QueryMetricListRequest import time clt = client.AcsClient(‘这里填写access_key‘,‘这里填写access_sercet‘,‘这里填写你所在的地域‘) request = QueryMetricListRequest.QueryMetricListRequest() request.set_accept_format(‘json‘) #获取的是json格式 request.set_Project(‘acs_oss‘) request.set_Metric(‘MeteringStorageUtilization‘) #这个获得的值单位是字节 start_time = "2017-09-25 11:00:00" #获取11点时候的数值 timestamp_start = int(time.mktime(time.strptime(start_time, "%Y-%m-%d %H:%M:%S"))) * 1000 request.set_StartTime(timestamp_start) request.set_Dimensions("{\‘BucketName\‘:‘ligentest‘}") #这里就是填写bucket名字的地方 request.set_Period(‘3600‘) #计量类指标的Metric如下,注意聚合粒度为3600s。 result = clt.do_action_with_exception(request) print result
脚本执行效果如下:
可以看到我们得到了很多值,这里我们看一下红色框的内容,他的timestamp值是1506308400000对应的就是9月25日11点,也就要是脚本里的start_time:
11点的时候容量大小是6927711586,在脚本的注释里我说过这个值的单位是字节,那么换算成GB,如图:
与网页控制台的数值一致!脚本成功!那么剩下的步骤就是切块然后换算成高级单位,再写成一个定时邮件,每天美滋滋的按时发送给领导啦。
最后的最后,如果您觉得本文对您升职加薪有帮助,那么请不吝赞助之手,刷一下下面的二维码,赞助本人继续写更多的博文!
本文出自 “生活就是等待戈多” 博客,请务必保留此出处http://chenx1242.blog.51cto.com/10430133/1968378
以上是关于利用阿里云SDK获取OSS存储值的主要内容,如果未能解决你的问题,请参考以下文章