#!/usr/bin/env python3
#-*- coding: utf-8 -*- # 获取阿里云云监控中 OSS 中的bucket 的bucket大小 from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
from datetime import datetime
import json
import oss2
import time
import requests accessKeyId = "XXXXXXXXXX"
accessSecret = "XXXXXXXXXXXX" # 接口调用
def QueryMetricList():
#client = AcsClient(accessKeyId, accessSecret, 'default')
client = AcsClient(accessKeyId, accessSecret) request = CommonRequest()
request.set_accept_format('json')
request.set_domain('metrics.aliyuncs.com')
request.set_method('POST')
request.set_version('2018-03-08')
request.set_action_name('QueryMetricList') request.add_query_param('Metric', 'MeteringStorageUtilization')
request.add_query_param('Project', 'acs_oss') response = client.do_action_with_exception(request) json_data = str(response, encoding='utf-8')
oss_data_dict = json.loads(json_data, encoding='utf8')
return oss_data_dict # 时间戳转换成标准时间
def get_date(timestamp):
time_local = time.localtime(timestamp)
covert_time = time.strftime("%Y-%m-%d %H:%M:%S", time_local)
return covert_time # 获取整点时间戳 + 转换为阿里云时间戳
def get_integral_time_timestamp(hour):
hour_stamp = datetime.now().replace(hour=hour,minute=0, second=0, microsecond=0).timestamp() * 1000
return hour_stamp # 字节单位换算
def bytes_conversion(number):
symbols = ('K','M','G','T','P','E','Z','Y')
prefix = dict()
for i,s in enumerate(symbols):
prefix[s] = 1<<(i+1) *10
for s in reversed(symbols):
if int(number) >= prefix[s]:
value = float(number) / prefix[s]
return '%.2f%s' %(value,s)
return "%sB" %number def get_oss_list(): oss_data_dict = QueryMetricList()
oss_data_str=oss_data_dict["Datapoints"]
oss_data_list = json.loads(oss_data_str,encoding='utf8')
return oss_data_list def get_oss_backets(oss_data_list, timestamp, BucketName):
for oss_bucket in oss_data_list:
if oss_bucket['timestamp']==timestamp and oss_bucket['BucketName']==BucketName:
return oss_bucket def sendmessage(content):
url = 'https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXXXXXXXX' HEADERS = {
"Content-Type": "application/json ;charset=utf-8 "
}
message = content
String_textMsg = {
"msgtype": "text",
"text": {"content": message},
}
String_textMsg = json.dumps(String_textMsg)
res = requests.post(url, data=String_textMsg, headers=HEADERS) def Output(oss_data_list): temp = [] # 采集时间点的时间戳
current_timestamp = get_integral_time_timestamp(0)
# 30天前的时间戳 2592000000 = 3600 * 24 * 30 * 1000
before_timestamp = current_timestamp - 1728000000 all_bucket_names = [ bucketname['BucketName'] for bucketname in oss_data_list]
all_bucket_name = list(set(all_bucket_names)) for bucketname in all_bucket_name:
data = {}
current_oss_bucket = get_oss_backets(oss_data_list, current_timestamp, bucketname)
before_oss_bucket = get_oss_backets(oss_data_list, before_timestamp, bucketname)
time_interval = ("%s 至 %s" % (get_date(int(current_timestamp / 1000)), get_date(int(before_timestamp / 1000))))
data["采集时间段"] = time_interval
data["Bucket"] = bucketname
MeteringStorageUtilization= current_oss_bucket["MeteringStorageUtilization"] - before_oss_bucket["MeteringStorageUtilization"]
data["Bucket大小差值"]= bytes_conversion(MeteringStorageUtilization)
temp.append(data)
return temp if __name__ == '__main__':
oss_data_list=get_oss_list()
# temp=get_oss_backets(oss_data_list,1546959600000.0, "fhn213")
# for k,v in temp.items():
# print(k,v,type(v)) temp=Output(oss_data_list)
print(temp) # sendmessage(temp)

阿里云OSS的Bucket容量大小采集的更多相关文章

  1. 解决阿里云OSS The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint的办法

    以前有一个上海节点的存储包,一直使用正常.最近购买了一个全国的存储包,发现在上传文件的时候有这个问题. 尝试了很多办法,还提交了工单,都没有解决. 最后解决办法如下: 1.在阿里云OSS管理控制台下, ...

  2. ThinkPHP 文件上传到阿里云OSS上(干货)

    参考:http://www.thinkphp.cn/extend/789.html 1.前往阿里云github下载SDK包:https://github.com/aliyun/aliyun-oss-p ...

  3. Aliyun OSS Nginx proxy module(阿里云OSS Nginx 签名代理模块)

    1.此文章主要介绍内容 本文主要介绍如何利用Nginx lua 实现将阿里云OSS存储空间做到同本地磁盘一样使用.核心是利用Nginx lua 对OSS请求进行签名并利用内部跳转将所有访问本地Ngin ...

  4. php阿里云oss文件上传

    php的文件上传 文件上传 php的文件上传放在了$_FILES数组里,单文件和多文件上传的区别在于$_FILES['userfile']['name']是否为数组, 不熟悉的可以读一下官方文档 单文 ...

  5. TP框架上传图片至阿里云oss

    首先安装阿里云oss扩展: composer require aliyuncs/oss-sdk-php 如果这个安装不上可以直接下载SDK的包: 链接:https://pan.baidu.com/s/ ...

  6. 用OSS给阿里云ECS扩展硬盘容量

    阿里云的虚拟机ECS在创建时可以指定一个云盘,但在使用过程中,随着时间推移数据越来越多,难免硬盘就不够用了.当然你可以在另外加个云盘,不过总还有用完的时候,而且价格也不便宜.今天给大家介绍一个方法,给 ...

  7. 一招教你写博客,Typora+PicGo+阿里云oss,最好用的Markdown+最好用的图床工具!

    博客 写博客的好处 1.使自己变得更善于观察.一旦你养成了记博客的习惯,与此同时你也赋予了一个更好的机会给自己,让自己去更细致地观察生活.一个人的生活经历本就是价值连城的,从中学习到的知识,教训更是异 ...

  8. phpcmsv9 阿里云OSS云存储整合教程

    该教程算不上是phpcmsv9阿里云oss插件,所以整个修改及其代码覆盖前请一定记得备份.还有一点就是后台发布文章时上传的附件还是会保存在你的服务器上,基于以下原因:1.个人的需求是前台页面需要使用t ...

  9. angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)

    2015-10-26 angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前 ...

随机推荐

  1. js判断浏览器是否支持webGL

    起因是我之前开发的网页,用到了three.js制作了一个3d的旋转球体效果. 在各种浏览器上运行都没问题,在IE上也做了兼容代码. 但是今天接电话,老板说你这网页在xp上不显示啊.IE上好使.goog ...

  2. eslint 代码缩进 报错及解决

    一.背景 使用vue在VScode中正常写的代码,报了一堆的错误,仔细检查,发现都是缩进要么多了要么少了,总之是代码不规范的的报错. 二.原因 百度查了发现代码规范默认缩进2个空格,而VScode默认 ...

  3. Linux新手随手笔记1.6

    RAID磁盘冗余阵列 1.I/O  速度 2.数据安全性  RAID 0 负载均衡.速度乘以二,但是数据安全性不行,任何一块盘损坏数据都会丢失. RAID 1 安全性性提升2倍,任何一个损坏另一个都有 ...

  4. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案

    ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不大,但从内部运行方式上来说,差别还是很大的.上一篇详细介绍了原版路由方案的运行机制, ...

  5. git命令的理解与扩展

    Git的模式如图: Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Repository:仓库区(或本地仓库) 一.新建代码库 # 查看gi ...

  6. codeforces#1139D. Steps to One (概率dp+莫比乌斯反演)

    题目链接: http://codeforces.com/contest/1139/problem/D 题意: 在$1$到$m$中选择一个数,加入到一个初始为空的序列中,当序列的$gcd$和为$1$时, ...

  7. jdk8中的stream

    https://www.ibm.com/developerworks/cn/java/j-lo-java8streamapi/ Java 8 中的 Streams API 详解 Streams 的背景 ...

  8. 项目总结-timerTask的使用

    关于使用timerTask来进行定时任务的研究 业务说明:每天的0点执行一次 调用说明:com.hzmd.itest.db.ItestDbUtil中的startPermitTimer()方法进行最终的 ...

  9. 封装LocalStorage.js

    之前使用vue开发的项目频繁使用到localStorage,封装了一下 localStorage.js文件代码如下: let obj = {}; /** * putLocalStorage 把数据放到 ...

  10. 腾讯云服务器哪个地区节点好?来ping一下速度就知道了

    腾讯云服务器怎么样?速度快吗?相信很多网友在购买云服务器之前都有此疑惑. 本人找了很久也没找到各区域节点的测试速度的域名和IP.即使有也不能批量查看对比哪个区域的速度. 网上都说这个区域节点速度快,那 ...