阿里云 和 七牛 云存储的比较
结论:
比较内容 | 阿里云存储 | 七牛云存储 |
标准:REST、HTTP | 99%符合 | 50% |
基本功能:送二级域名、绑定域名、CDN | 支持 | 支持 |
自定义文件HTTP header | 支持 | 少量支持 |
高级服务:图片处理 | 不提供 | 很完善地提供 |
收费策略 | 收费 | 小流量免费。大流量收费。 |
官方PHP SDK | 差,依赖亚马逊http库,而不是PHP官方PEAR HTTP_Request2 | 差 |
在国内的VPS服务器厂商中,阿里云做的很好,所以项目倾向于使用阿里云开放存储服务(aliyun OSS)。
把阿里云存储官方混乱的PHP SDK 重写成PEAR,然后作为apk下载使用。
然后想把图片服务器也迁移到云存储,这样不占用VPS带宽。这时候才发现 阿里云OSS 只有最简单的文件存储功能,不支持图片处理。
比如图片服务器最常用的功能:
1、上传一张原图,实时自动生成任意分辨率的各种图片
比如原图
http://example.com/2.jpg
然后请求任意分辨率,请求时服务器自动生成并输出,比如
http://example.com/2.jpg?resolution=1280x720
2、格式自动转换
比如http://example.com/2.jpg?format=png
由于阿里云存储不支持图片功能,所以不能用了。考虑迁移到七牛。
参考七牛官方PHP SDK,重写成PHP PEAR包,发现七牛API不是REST。
API对比如下:
阿里云存储 | 七牛云存储 | |
上传文件 | HTTP PUT 资源URI | HTTP POST up.qiniu.com |
删除文件 | HTTP DELETE 资源URI | HTTP POST rs.qbox.me |
认证 | HTTP header Authorization | 一会儿使用HTTP header Authorization,一会儿使用POST token |
阿里云存储 API CURL demo
上传文件:
curl -i -X 'PUT' -T '1.jpg' 'http://com-163-sinkcup.oss.aliyuncs.com/1.jpg' -H 'Authorization: OSS asdf:qwer' -H 'Content-Type:image/jpeg'
删除文件:
curl -i -X 'DELETE' 'http://com-163-sinkcup.oss.aliyuncs.com/2.jpg'
七牛云存储 API CURL demo:
上传文件(可以看出七牛把bucket放在token认证中,技术上导致七牛无法实现“公共上传”):
curl -i -F 'file=@2.jpg' -F 'token=asdf' -F 'key=2.jpg' 'http://up.qiniu.com/'
删除文件:
curl -i -X 'POST' -H 'Authorization: QBox asdf' 'http://rs.qbox.me/delete/com-163-sinkcup:1.jpg'
可以看出:阿里云存储在技术上比较严谨,使用标准REST。七牛有的地方不再使用token,使用了HTTP header Authorization,可能正在改进。
图片功能对比如下:
阿里云存储 | 七牛云存储 | |
自动生成任意分辨率 | 无 | 支持 |
自动生成任意格式 | 无 | 支持 |
webp | 无 | 支持,可节约app大量流量 |
七牛的图片demo
原图 103KB:http://com-163-sinkcup.qiniudn.com/6ffe255fab20747c8872638870268703
由于七牛提供的图片功能及其强大,支持webp对移动互联网省流量特别重要(Android、ios app省70%流量),而且七牛使用go语言,还写了本书(《Go语言编程》豆瓣),说明技术上实力很强,以后会支持REST的,所以最后决定使用 七牛云存储。
阿里云和七牛的PHP SDK都一样不规范,没法用,只能重写。我重写好了,在这里:
七牛云存储PHP PEAR包下载:http://www.cnblogs.com/sink_cup/p/PHP_PEAR_Services_Qiniu.html
阿里云存储PHP PEAR包下载:http://www.cnblogs.com/sink_cup/p/PHP_PEAR_Services_Aliyun_OSS.html
阿里云存储1%不符合标准的地方:
自定义HTTP header使用了小写,不符合HTTP常识。比如阿里云使用x-oss-acl是错误的,应该使用X-Oss-Acl。
已经放到github
项目代码:https://github.com/sinkcup/Services_Aliyun_OSS
PEAR频道:http://sinkcup.github.io/pear/
七牛官方PHP SDK源代码:
https://github.com/qiniu/php-sdk
fork以后,我的Services_Qiniu源代码:
https://github.com/sinkcup/php-sdk/tree/pear
国内不得不提的几家非常有竞争力的CDN服务商:
1. 蓝汛 网宿
- 蓝汛(ChinaCache)和网宿(ChinanetCenter)是国内两大龙头CDN服务商,一大半的政府、电商网站都是用的这两家服务商的服务。
- 计费方式通常为带宽计费、请求计费、流量计费。
- 带宽计费价格约为80到150元/1mbps 1月,
- 请求计费约为10000请求1元,月最低1000元(网宿主推计费方式),
- 流量计费主要是ChinaCache的子项目Webluker的主推计费模式,价格为1.2到0.8元/GB的梯级计费。
2. 又拍云
- 又拍云是杭州纬聚的一个云产品项目,有种PaaS的感觉,又拍云通过自建储存和自建CDN服务,提供给站长一种廉价的储存与网站文件加速的服务。
- 计费模式:
- 空间计费 加 流量计费
- 空间计费为0.8元/1G 1月。
- 计量计费为0.6元到0.9元的梯级计费,用预付款、预购买空间加流量套餐,每日更新使用量扣除额度。
3. 七牛云
- 七牛云是上海七牛云的项目,CEO许总曾在金山、盛大做过一些项目(如WPS、EVERBOX等),是国内GO语言的倡行者。
- 七年云与又拍云有些类似,但有不同:
- 七牛云的CDN是与网宿合作,提供给站长的流量计费非常便宜。
- 七牛的计费方式是 空间 加 流量 加 请求 三者之和,按需计费,预充值到账户余额,每日扣除实际使用量相应的费用。
- 七牛每月有免费50G储存空间 加 10G免费流量 加 100万免费请求的额度(如果是个人网站,免费额度完全够用!)。
- 七牛有源镜像功能(虽然听说又拍云也在做这功能),有了这功能,才是储存服务与CDN加速服务的最完美结合。
- 七牛支持HTTPS
- 七牛不区分图片、文件空间,创建的空间,可直接使用图片缩略接口、音视频转码提帧等接口。
- 因七牛的CDN是与网宿合作的,所以七牛云储存提供给开发者、站长日志是每一两天更新一次。
- 七牛云储存的网站略丑。
- 计费:
- 储存空间 0.5元/G 1月
- 流量 0.5元/GB
- 请求 0.01/万次请求
目前国内做得最红火的,无非就这么几家了。虽然有些项目是创业公司的创新项目,甚至有些项目不算真正意义上的CDN,但其产品的定位已经超越了传统的CDN服务。希望阿里云CDN在定价时可以参考下这几家公司的产品的价格。
原文: sink_cup
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2014-06-13 22:54:43
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: 阿里云 和 七牛 云存储的比较 (米扑博客)