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。

  • 相关阅读:
    java线程池
    缓存命中
    dubbo面向服务使用
    ActiveMQ
    创建证书
    struts2的运行原理以及底层的工作机制
    jdbc,mybatis,hibernate各自优缺点及区别
    struts2与springmvc的区别
    linux vi 命令编辑操作
    Linux FTP基本操作命令 ( 序列二 ftp)
  • 原文地址:https://www.cnblogs.com/kenshinobiy/p/4286499.html
Copyright © 2011-2022 走看看