1. 程式人生 > >利用阿裏雲SDK獲取OSS存儲值

利用阿裏雲SDK獲取OSS存儲值

阿裏雲 oss.openapi sdk

為了先說名一下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存儲值