云存储:阿里云 和 七牛 的比较_PHP教程
Jul 20, 2016 am 11:15 AM结论:
阿里云存储 | 七牛云存储 | |
标准:REST、HTTP | 99%符合 | 50% |
基本功能:送二级域名、绑定域名、CDN | 支持 | 支持 |
自定义文件HTTP header | 支持 | 少量支持 |
高级服务:图片处理 | 不提供 | 很完善地提供 |
收费策略 | 收费 | 小流量免费。大流量收费。 |
官方PHP SDK | 差,依赖亚马逊http库,而不是PHP官方PEAR HTTP_Request2 | 差 |
把阿里云存储官方混乱的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 <span '</span><span PUT</span><span '</span> -T <span '</span><span 1.jpg</span><span '</span> <span '</span><span http://com-163-sinkcup.oss.aliyuncs.com/1.jpg</span><span '</span> -H <span '</span><span Authorization: OSS asdf:qwer</span><span '</span> -H <span '</span><span Content-Type:image/jpeg</span><span '</span>
curl -i -X <span '</span><span DELETE</span><span '</span> <span '</span><span http://com-163-sinkcup.oss.aliyuncs.com/2.jpg</span><span '</span>
七牛云存储 API CURL demo:
上传文件(可以看出七牛把bucket放在token认证中,技术上导致七牛无法实现“公共上传”):
curl -i -F <span '</span><span file=@2.jpg</span><span '</span> -F <span '</span><span token=asdf</span><span '</span> -F <span '</span><span key=2.jpg</span><span '</span> <span '</span><span http://up.qiniu.com/</span><span '</span>
curl -i -X <span '</span><span POST</span><span '</span> -H <span '</span><span Authorization: QBox asdf</span><span '</span> <span '</span><span http://rs.qbox.me/delete/com-163-sinkcup:1.jpg</span><span '</span>
可以看出:阿里云存储在技术上比较严谨,使用标准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。

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment activer la fonction nfc sur Xiaomi Mi 14 Pro ?

Alibaba Cloud a annoncé que la conférence Yunqi 2024 se tiendra à Hangzhou du 19 au 21 septembre. Application gratuite pour des billets gratuits.

Comment utiliser TikTok sur Huawei Pocket2 à distance ?

Comment définir l'espacement des lignes dans WPS Word pour rendre le document plus soigné

Comment utiliser l'extension d'image intelligente Xiaomi Mi 14 Ultra AI ?

La différence et analyse comparative entre le langage C et PHP

Processus d'installation de Git sur Ubuntu

'Lingxi Interactive Entertainment' d'Alibaba Game Company a changé de direction et sera remplacé par Zhou Bingshu, le producteur de 'Three Kingdoms: Strategy Edition'
