阿里云OSS使用记录
本文写于 2015年。 |
使用
开通OSS服务
通过控制台开通。
创建Bucket
通过控制台开通,也可以通过调用API开通。
创建过程中,需要设置地域,还要设置权限。
不同地域访问的入口URL不同,值得注意的是,URL还区分公网入口和内网入口。
如青岛节点:
外网地址: oss-cn-qingdao.aliyuncs.com
内网地址: oss-cn-qingdao-internal.aliyuncs.com
公网调用,会收取流量费用,内网地址仅允许所在节点的内网服务器调用,可达到节省流量的效果。
在青岛节点申请名为的test的Bucket。
公网地址:test.oss-cn-qingdao.aliyuncs.com
内网地址:test.oss-cn-qingdao-internal.aliyuncs.com
权限分为三种:
公共读写:任何人均可操作此Bucket中的数据,包括匿名用户,慎用。
公共读:只有此Bucket的拥有者可做写操作,任何人可做读操作,常用。
私有:只有Bucket的拥有者可做读写操作。
申请API
阿里云首页——用户中心——用户中心——我的服务——安全认证——创建Accesskey。
申请过程中,需要输入手机验证码。
下载SDK
python版本:http://aliyunecs.oss-cn-hangzhou.aliyuncs.com/OSS_Python_API_20140509.zip
开发指南:http://aliyun_portal_storage.oss.aliyuncs.com/oss_api/oss_pythondoc/OSS_Python_SDK.pdf
Bucket操作
在控制台和SDK均可实现完整的操作,包括新建和删除Bucket节点,上传、删除、读取Object。
Bucket的使用
网页文件
将静态网站文件上传至Bucket,绑定域名,即可实现访问。
Bucket管理——选择Bucket名称——点击浏览——Bucket属性——域名绑定。
域名绑定方法:下载验证文件,上传至原网站根目录,通过验证后,即可修改原网站域名解析,CNAME到Bucket地址。
CDN加速:开通CDN加速后——CDN域名列表——添加新域名——选择Bucket域名——指定Bucket域名和绑定域名——完成配置。
图片文件
将图片文件上次至Bucket,绑定域名,即可自动实现图片访问域名加速,同时支持服务端图片处理。
根据测试情况,仅支持图片文件,判断图片文件的标准不是后缀名,而是文件内容。
比如将图片文件x.jpg修改为x.txt,依然是正常的,但是将文本文件x.txt修改为x.jgp,是无法访问的。
Bucket管理——选择Bucket名称——点击浏览——Bucket属性——图片管理——域名绑定
域名绑定方式同上。
CDN加速
在域名绑定验证成功后,自动完成配置
生成三个域名:
当前绑定的域名: image.xxx.com
图片服务的域名: xxx-image.img-cn-qingdao.aliyuncs.com
CDN加速的域名: image.xxx.com.w.alikunlun.com
两者对比
网页文件和图片文件上传操作没有区别,均可通过公网和内网的地址进行文件上传。
在不使用CDN加速的情况下,若使用OSS地址直接访问,没有任何区别。
在配置CDN后,存在明显的差异:
网页文件需要手动设置CDN加速,访问时,文件类型不受限制。
图片文件自动设置CDN加速,仅有图片文件才能被正常访问。
图片文件配置方式的优势在于,可实现文件的服务端实时处理。
比如:http://image.xxx.com/x.jpg@1e_400w_390h_1c_0i_1o_90Q_1x.jpg,可立即实现文件大小的转换
网页文件配置方式的优势在于,使用CDN加速时,访问时不受文件类型的限制。
监控
安装SDK
下载Python的阿里云OSS的SDK。
http://aliyunecs.oss-cn-hangzhou.aliyuncs.com/OSS_Python_API_20140509.zip
解压缩后安装python setup.py install
安装完成后,初步调试这个SDK,因为python版本原因,模块引用告警
/usr/lib/python2.6/site-packages/oss-0.1.3-py2.6.egg/oss/oss_util.py:21: DeprecationWarning:the md5 module is deprecated; use hashlib instead import md5 |
根据提示,将import md5 修改为import hashlib即可
编写监控脚本
脚本逻辑:
a.检查bucket信息是否可以正常获取
b.将本地文件复制一份,修改为随机文件名
c.将文件上传至OSS,通过CDN地址下载,再删除
d.删除文件名为随机的文件
脚本每次执行时,重复上述逻辑
代码如下:
#!/usr/bin/python |