利用阿里云SDK获取OSS存储值的办法

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介:

为了先说名一下SDK和openAPI的区别,这里借用知乎一位朋友最简单粗暴的回答:

wKiom1nIdU3y_mOxAAE62Jw-E5Y507.png-wh_50


如此的形象生动,我为他点赞!


下面具体说一下阿里云的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的:

wKioL1nGAcWAzBQGAADMUT_LJgA968.png


现在我要做一个脚本获得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在早上9点的容量值,也就是下图的6.45GB:

wKiom1nIxeiQKtBjAAB79rz3a74548.png


整个的脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/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 08:00:00"     #获取从08点开始
end_time  =  "2017-09-25 09:00:00"     #获取从09点结束
timestamp_start  =  int (time.mktime(time.strptime(start_time,  "%Y-%m-%d %H:%M:%S" )))  *  1000
timestamp_end  =  int (time.mktime(time.strptime(end_time,  "%Y-%m-%d %H:%M:%S" )))  *  1000
request.set_StartTime(timestamp_start)
request.set_EndTime(timestamp_end)
request.set_Dimensions( "{\'BucketName\':'ligentest'}" )     #这里就是填写bucket名字的地方
request.set_Period( '3600' )     #计量类指标的Metric如下,注意聚合粒度为3600s。
result  =  clt.do_action_with_exception(request)
print  result


脚本执行效果如下:

wKioL1nI8dfi8E64AADPf_agd7U969.png


可以看到我们得到了很多值,这里我们看一下红色框的内容,他的timestamp值是1506308400000对应的就是9月25日09点,也就要是脚本里的start_time:

1.png



9点的时候容量大小是6927711586,在脚本的注释里我说过这个值的单位是字节,那么换算成GB,如图:

wKiom1nIx3mg7fiwAAB0HG4cpfw297.png


与网页控制台的数值一致!脚本成功!那么剩下的步骤就是切块然后换算成高级单位,再写成一个定时邮件,每天美滋滋的按时发送给领导啦。


如果上面那个值里没有写end_time的话,那么就会发送从start_time截至到控制台最新时刻的容量值。如果start_time 与end_time的时间相同,那么获取到的值为空...



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

wKioL1l16m3BMYDKAACPHEqd55Q687.jpg



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

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
28天前
|
存储 JavaScript 前端开发
oss使用SDK上传文件
oss使用SDK上传文件
94 2
|
1月前
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
685 1
|
25天前
|
存储 安全 对象存储
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
本文详细介绍了怎样帮助新手小白从注册,购买阿里云OSS,到一步一步配置OSS做为图床,和PicGo、Typora软件连接,配置好关联之后,在使用Typora写文章时,如果需要插入图片,只需要将图片复制粘贴到Typora的编辑区域,就会自动通过PicGo上传到指定图床,自动复制外网能访问的URL并展示,简直不要太方便,极大的解决了编辑文章时复制处理图片链接的痛点。
142 2
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
|
1月前
|
存储 调度 块存储
阿里云连续两年斩获全球存储顶会FAST最佳论文
阿里云连续两年斩获全球存储顶会FAST最佳论文
307 0
|
27天前
|
弹性计算 前端开发 小程序
微信小程序上传文件至阿里云OSS直传(java后端签名+前端直传)
当前的通用文件上传方式是通过前端上传到服务器,再由服务器转存至对象存储。这种方式在处理小文件时效率尚可,但大文件上传因受限于服务器带宽,速度较慢。例如,一个100MB的文件在5Mbps带宽的阿里云ECS上上传至服务器需160秒。为解决此问题,可以采用后端签名的方式,使微信小程序直接上传文件到阿里云OSS,绕过服务器中转。具体操作包括在JAVA后端引入相关依赖,生成签名,并在微信小程序前端使用这个签名进行文件上传,注意设置正确的请求头和formData参数。这样能提高大文件上传的速度。
|
7天前
|
开发工具 对象存储
阿里云OSS文件上传
阿里云OSS文件上传
48 0
|
7天前
|
存储 缓存 Java
阿里云OSS实战从入门到大神
说起阿里云OSS,那作用和功能都是非常强大的,它可以存放图片,音频,视频等资源文件,这些资源文件,你不必存放到服务器的硬盘里,这样既可以节省服务器硬盘空间,又可以降低服务器的读写压力,非常适合大并发的架构。
48 0
|
22天前
|
存储 安全 数据安全/隐私保护
oss数据加密与存储
阿里云OSS提供多种数据加密(SSE-S3, SSE-KMS, SSE-C, CSE-KMS)与存储安全措施,包括服务器和客户端加密、数据在磁盘上加密存储、多重冗余备份、访问控制列表和HTTPS安全传输。KMS支持密钥管理,确保数据静态和传输时的安全。严格的访问策略和身份验证保护资源免受未授权访问,满足高安全性和合规性需求。
35 3
|
1月前
|
存储 调度 块存储
十二年磨一剑:三代架构演进,打造高性能、低成本的块存储!
上周,全球计算机存储顶会USENIX FAST 2024 在美国加州圣克拉拉召开,继去年获得国内首个FAST最佳论文奖后,凭借在分布式块存储上的创新,阿里云新作再次斩获FAST大会最佳论文奖。这也是国内唯一一家连续两年获得FAST最佳论文奖的科技公司。
104574 103