​获取阿里云同一账号下多个bucket容量的脚本

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介:

执行脚本前的准备工作请移步:http://chenx1242.blog.51cto.com/10430133/1968378 这篇文章里看,下面就是完整的脚本内容。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#这个脚本需要python 2.7+版本
 
from  aliyunsdkcore  import  client
from  aliyunsdkcms.request.v20170301  import  QueryMetricListRequest
import  time,re,os,datetime
 
oss_list = [ 'lechangecloud' , 'lechangecloud-public' , 'lechangehls' , 'online-sz-private' , 'online-sz-public' , 'lechangecloud-public2' ]         #这里就是云存储bucket的列表
 
def  gettodayoss(oss):
         global  today_lechangecloud_GB
         clt  =  client.AcsClient( '这里填写ak' , '这里填写sk' , '这里填写对应的区域' )
         request  =  QueryMetricListRequest.QueryMetricListRequest()
         request.set_accept_format( 'json' )
         request.set_Project( 'acs_oss' )
         request.set_Metric( 'MeteringStorageUtilization' )
         today_time  =  time.strftime( '%Y-%m-%d' + " 04:00:00"
         timestamp_today  =  int (time.mktime(time.strptime(today_time,  "%Y-%m-%d %H:%M:%S" )))  *  1000
         request.set_StartTime(timestamp_today)
         request.set_Dimensions( "{\'BucketName\':" +  oss  + "}" )
         request.set_Period( '3600' )
         result  =  clt.do_action_with_exception(request)
         #print result
         storage  =  int (re.split( '"|}|:' ,result)[ 34 ])
         today_lechangecloud_GB  =  ( '%.2f'  % (storage / float ( 1073741824 )))
         print  oss + "在" + today_time + "的容量大小是:" + today_lechangecloud_GB + "GB。"
 
def  getyesterdayoss(oss):
         global  yes_lechangecloud_GB
         clt  =  client.AcsClient( '这里填写ak' , '这里填写sk' , '这里填写对应的区域' )
         request  =  QueryMetricListRequest.QueryMetricListRequest()
         request.set_accept_format( 'json' )
         request.set_Project( 'acs_oss' )
         request.set_Metric( 'MeteringStorageUtilization' )
         now_time  =  datetime.datetime.now()
         yes_time =  now_time  +  datetime.timedelta(days = - 1 )
         yes_time_start  =  yes_time.strftime( '%Y-%m-%d' ) + " 04:00:00"
         #yes_time_end = yes_time.strftime('%Y-%m-%d')+" 10:00:00"
         timestamp_yesterday_start  =  int (time.mktime(time.strptime(yes_time_start,  "%Y-%m-%d %H:%M:%S" )))  *  1000
         #timestamp_yesterday_end = int(time.mktime(time.strptime(yes_time_end, "%Y-%m-%d %H:%M:%S"))) * 1000
         request.set_StartTime(timestamp_yesterday_start)
         #request.set_EndTime(timestamp_yesterday_end)
         request.set_Dimensions( "{\'BucketName\':" +  oss  + "}" )
         request.set_Period( '3600' )
         yes_result  =  clt.do_action_with_exception(request)
         #print yes_result
         yes_storage  =  int (re.split( '"|}|:' ,yes_result)[ 34 ])
         yes_lechangecloud_GB  =  ( '%.2f'  % (yes_storage / float ( 1073741824 )))
         print  oss + "在" + yes_time_start + "的容量大小是:" + yes_lechangecloud_GB + "GB。"
 
def  getdiff(oss):
         diff  =  float (today_lechangecloud_GB)  -  float (yes_lechangecloud_GB)
         print  "今天与昨天同一时间的云存储差值是" + str (diff) + "GB。"
 
if  __name__  = =  "__main__" :
         for  oss  in  oss_list:
                 oss  =  "'%s'" % oss
                 gettodayoss(oss)
                 getyesterdayoss(oss)
                 getdiff(oss)
print ( "整个脚本执行结束,感谢您的使用!" )


执行效果如下:

wKioL1nMakPjfPapAAKWBp6JSPc022.png


新的知识点!

1)python获取今天日期的方法:

1
2
3
4
5
>>>  import  time
>>> time.strftime( '%Y-%m-%d' )
'2017-09-28'
>>>  type (time.strftime( '%Y-%m-%d' ))
< type  'str' >

2)python获取昨天的日期的办法:

1
2
3
4
5
6
7
8
>>>  import  datetime
>>> now_time  =  datetime.datetime.now()
>>> yes_time  =  now_time  +  datetime.timedelta(days = - 1 )
>>> yes_time_nyr  =  yes_time.strftime( '%Y-%m-%d' )
>>>  print  (yes_time_nyr)
2017 - 09 - 27
>>>  type (yes_time_nyr)
< type  'str' >

3)在 if __name__ == "__main__" 这一步的时候,我添加了一句 oss = "'%s'"%oss ,这是因为如果不加这句话,那么传递给阿里云的bucket名称格式不正确,正常的格式应该是:

1
{ 'BucketName' : 'lechangecloud' }


不加这句话,得到的格式是缺少单引号的:

1
{ 'BucketName' :lechangecloud}



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

wKioL1l16m3BMYDKAACPHEqd55Q687.jpg


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


相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
相关文章
|
5月前
|
Shell 开发工具 git
Git-2.42.0-64-bit安装教程附详解+环境变量配置
Git-2.42.0-64-bit.exe是Windows下主流的Git版本控制工具安装包。下载后以管理员身份运行,安装时注意选择默认编辑器(推荐VS Code或记事本)、配置PATH环境变量(选第二项),并根据开发需求设置换行符转换。安装完成后通过cmd执行`git --version`验证,并配置用户名和邮箱即可开始使用。
4060 2
|
前端开发 安全 关系型数据库
Flask的学生信息管理系统的设计与实现
Flask的学生信息管理系统的设计与实现
1740 0
|
JSON 搜索推荐 C++
vscode如何更改背景颜色主题,黑色或白色?
【11月更文挑战第16天】在 VS Code 中更改背景颜色主题,可通过三种方式实现:1) 使用快捷键 Ctrl+K 和 Ctrl+T(Mac 上为 Command+K 和 Command+T)选择主题;2) 通过菜单中的“管理”-&gt;“颜色主题”选项选择;3) 修改 settings.json 文件中的 &quot;workbench.colorTheme&quot; 属性。此外,用户还可从扩展市场安装更多主题以满足个性化需求。
34511 6
|
机器学习/深度学习 算法 Python
【Python】已解决:ModuleNotFoundError: No module named ‘sklearn‘
【Python】已解决:ModuleNotFoundError: No module named ‘sklearn‘
10612 10
|
3天前
|
云安全 人工智能 运维
阿里云SecOps Agent,全新安全跨产品执行体验
自然语言驱动 云安全中心/WAF/CFW/ 等多款安全产品联动
1593 2
|
1天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
343 121
|
3天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
561 3
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~