zoukankan      html  css  js  c++  java
  • 云存储:阿里云 和 七牛 的比较

    结论:

      阿里云存储 七牛云存储
    标准: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。

  • 相关阅读:
    poj 3243 Clever Y(BabyStep GiantStep)
    poj 2417 Discrete Logging
    poj 3481 Double Queue
    hdu 4046 Panda
    hdu 2896 病毒侵袭
    poj 1442 Black Box
    hdu 2815 Mod Tree
    hdu 3065 病毒侵袭持续中
    hdu 1576 A/B
    所有控件
  • 原文地址:https://www.cnblogs.com/sink_cup/p/cloud_storage_aliyun_oss_vs_qiniu_rs.html
Copyright © 2011-2022 走看看