(转)云存储:阿里云OSS 、又拍云和 七牛 的比较

 

阿里OSS:好处就是,那是一套完整的体系,存储,数据库,CDN,服务器,阿里均可以给你全包。缺点,费用对于没有盈利的网站来讲过高了,好像定位就是给那些高端客户使用的,并且CDN,OSS的流量是分开收费,带宽(2倍成本,呵呵)。
又拍云:算是老牌静态存储服务商,自带有CDN。存储空间能够弹性增长(不知道可不能够弹性减小,我只是无偿使用了一下)。费用计算公式(空间和流量),请求次数是免费。可免费试用7天。开源的程序(DZ,PW,WP)都有插件,也能够直接使用FTP,对于技术上要求不是过高就可使用。
七牛:10GB永久免费存储空间,每个月10GB下载流量,10万次Put请求,100万次Get请求,对于新用户来讲,很是友好。价格方面,比阿里OSS稍微便宜一点。技术使用方面,开源API对于每种语言都有,但对开源程序,彷佛没有官方的插件。

总结:三种空间图片加载速度都差很少,阿里稍微快一点点,多是我主站放阿里的缘由。价格对于大站价格都差很少,小站,用七牛是最划算的。又拍云是性价比最高的。
说的不对的地方欢迎指正,谢谢。html

----------------------------------------------------------------------------------------------------------------web

结论:数据库

  阿里云存储 七牛云存储
标准:REST、HTTP 99%符合 50%
基本功能:送二级域名、绑定域名、CDN 支持 支持
自定义文件HTTP header 支持 少许支持
高级服务:图片处理 不提供 很完善地提供
收费策略 收费 小流量免费。大流量收费。
官方PHP SDK 差,依赖亚马逊http库,而不是PHP官方PEAR HTTP_Request2

在国内的VPS服务器厂商中,阿里云作的很好,因此项目倾向于使用阿里云开放存储服务(aliyun OSS)。编程

把阿里云存储官方混乱的PHP SDK 重写成PEAR,而后做为apk下载使用。七牛云存储

而后想把图片服务器也迁移到云存储,这样不占用VPS带宽。这时候才发现 阿里云OSS 只有最简单的文件存储功能,不支持图片处理。服务器

好比图片服务器最经常使用的功能:app

一、上传一张原图,实时自动生成任意分辨率的各类图片curl

好比原图网站

http://example.com/2.jpg阿里云

而后请求任意分辨率,请求时服务器自动生成并输出,好比

http://example.com/2.jpg?resolution=1280x720

二、格式自动转换

好比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

自动生成jpg 79KB:http://com-163-sinkcup.qiniudn.com/6ffe255fab20747c8872638870268703?imageMogr/v2/auto-orient/thumbnail/1366x768/quality/80/format/jpg

自动生成webp 23KB:http://com-163-sinkcup.qiniudn.com/6ffe255fab20747c8872638870268703?imageMogr/v2/auto-orient/thumbnail/1366x768/quality/80/format/webp

因为七牛提供的图片功能极其强大,支持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。

相关文章
相关标签/搜索