结论:

比较内容 阿里云存储 七牛云存储
标准: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

自动生成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。

 

已经放到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. 蓝汛 网宿

  1. 蓝汛(ChinaCache)和网宿(ChinanetCenter)是国内两大龙头CDN服务商,一大半的政府、电商网站都是用的这两家服务商的服务。
  2. 计费方式通常为带宽计费、请求计费、流量计费。
  3. 带宽计费价格约为80到150元/1mbps 1月,
  4. 请求计费约为10000请求1元,月最低1000元(网宿主推计费方式),
  5. 流量计费主要是ChinaCache的子项目Webluker的主推计费模式,价格为1.2到0.8元/GB的梯级计费。

2. 又拍云 

  1. 又拍云是杭州纬聚的一个云产品项目,有种PaaS的感觉,又拍云通过自建储存和自建CDN服务,提供给站长一种廉价的储存与网站文件加速的服务。
  2. 计费模式:
  3. 空间计费 加 流量计费
  4. 空间计费为0.8元/1G 1月。
  5. 计量计费为0.6元到0.9元的梯级计费,用预付款、预购买空间加流量套餐,每日更新使用量扣除额度。

 

3. 七牛云 

  1. 七牛云是上海七牛云的项目,CEO许总曾在金山、盛大做过一些项目(如WPS、EVERBOX等),是国内GO语言的倡行者。
  2. 七年云与又拍云有些类似,但有不同:
  3. 七牛云的CDN是与网宿合作,提供给站长的流量计费非常便宜。
  4. 七牛的计费方式是 空间 加 流量 加 请求 三者之和,按需计费,预充值到账户余额,每日扣除实际使用量相应的费用。
  5. 七牛每月有免费50G储存空间 加 10G免费流量 加 100万免费请求的额度(如果是个人网站,免费额度完全够用!)。
  6. 七牛有源镜像功能(虽然听说又拍云也在做这功能),有了这功能,才是储存服务与CDN加速服务的最完美结合。
  7. 七牛支持HTTPS
  8. 七牛不区分图片、文件空间,创建的空间,可直接使用图片缩略接口、音视频转码提帧等接口。
  9. 因七牛的CDN是与网宿合作的,所以七牛云储存提供给开发者、站长日志是每一两天更新一次。
  10. 七牛云储存的网站略丑。
  11.  
  12.  
  13. 计费:
  14. 储存空间 0.5元/G 1月
  15. 流量 0.5元/GB
  16. 请求 0.01/万次请求

 

目前国内做得最红火的,无非就这么几家了。虽然有些项目是创业公司的创新项目,甚至有些项目不算真正意义上的CDN,但其产品的定位已经超越了传统的CDN服务。希望阿里云CDN在定价时可以参考下这几家公司的产品的价格。 

 

 

CDN价格比较: 阿里云七牛云又拍云

 

原文: sink_cup