七牛云存储还有一个独一无二的特性——支持用户将文件从客户端直传到云服务器中

目前七牛已经拥有数千家客户,你会发现其中有很多都是像知乎、Weico、Camera360、美图秀秀、蝉游记和Vida等UGC(用户产生内容)类产品,尤其是在图片社交领域。这是因为,除了我在前面所说的“云存储”比传统方案更节省成本外,七牛云存储还有一个独一无二的特性——支持用户将文件从客户端直传到云服务器中。因为我看过蝉游记CTO Quake撰文写过这一特性,所以就直接引用他的原文来做说明:

常见的云存储上传文件流程一般如下:

用户 =>应用服务器 =>云存储提供商

这样多了一次上传的流程,和本地存储相比,会相对慢一些。

而七牛提供了客户端自传的功能,流程可以改成:

用户 =>七牛 =>应用服务器

用户直接上传到七牛的服务器,通过DNS智能解析,七牛会选择到最近的最合适的ISP服务商节点,速度会比原先快很多,上传成功以后,七牛的服务器使用回调功能,只需要将非常少的数据(比如key)post回应用服务器,应用服务器进行保存即可。

开发者如果希望使用这个功能只需在产品里添加相关的SDK即可,另外,七牛也在架构中提供了“上传加速”服务,可以为用户智能选择最近的数据中心和最快的线路进行数据上传,从而达到最佳的上传速度。这个技术的难点在于必须保证数据中心间数据的一致性,我在《Facebook最伟大的技术成就有哪些?》一文中详细阐述这一做法的重要性。

除了速度以外,开发者一般还会关心另外两个问题:数据的安全性和数据的迁移成本。

在安全性方面,目前七牛云存储使用了3副本备份以及多数据中心备份来保证防止数据丢失的安全性,并通过将数据分块存储于多个服务器等多种安全措施的组合来防止数据被窃取。

在迁移成本上,七牛云存储开发了几个工具来帮助用户进行数据迁移:

1. 镜像存储。能够在不更改原站数据的情况下,被动地抓取原站数据,并把数据保存在七牛云存储上。

2.上传工具。能够直接同步本地目录及其子目录下的所有文件到服务器云端。

3.定时同步工具。开发者可以设置定时检测本地文件的改变,并同步修改部分,还能设定同步删除。

除了以上3个工具外,他们也提供通过硬件导入的大型数据的迁移服务。不过不同于其他的云存储服务,七牛云存储并不兼容亚马逊S3,所以使用亚马逊S3服务的产品迁移过来会相对麻烦一些。

当然,除了速度、稳定性和迁移成本外,为了更好地为开发者服务,参与市场竞争,现在的云存储厂商也开始在基础云存储服务上提供一些轻量的PaaS服务。例如七牛就针对图片和音视频等富媒体内容提供了云端处理服务,比如对应视频云存储推出了音频/视频的转码和截取工具,同时他们能够支持100MB以上的视频存储。他们也针对开发者提供了一些开发环境下的调试工具。

作为一家创业公司,七牛在两年内的业务发展速度很快,但他们的公司人数却没有与之成正比——目前为止,团队成员大约40人,其中90%都是技术人员。七牛也希望通过技术手段来提升每一位员工的生产率,比如尽可能的将运维系统自动化从而保持团队的精炼。他们将当前的重心放在了服务能力的扩增上——目前七牛在全国已经有超过500个加速节点,2012年年底拿到的融资能够让他们在今年更好地实施这一计划。

http://developer.qiniu.com/

上传流程

在七牛云存储中,整个上传流程大体分为这样几步:

  1. 业务服务器颁发 上传凭证给客户端(终端用户)
  2. 客户端凭借 上传凭证 上传文件到七牛
  3. 在七牛获得完整数据后,发起一个 HTTP 请求回调到业务服务器
  4. 业务服务器保存相关信息,并返回一些信息给七牛
  5. 七牛原封不动地将这些信息转发给客户端(终端用户)

需要注意的是,回调到业务服务器的过程是可选的,它取决于业务服务器颁发的 上传凭证。如果没有回调,七牛会返回一些标准的信息(比如文件的 hash)给客户端。如果上传发生在业务服务器,以上流程可以自然简化为:

  1. 业务服务器生成上传凭证(不设置回调,自己回调到自己这里没有意义)
  2. 凭借 上传凭证 上传文件到七牛
  3. 善后工作,比如保存相关的一些信息

http://developer.qiniu.com/docs/v6/sdk/c-sdk.html

http://www.gougousoso.com/u/yun/8.html

时间: 12-12

七牛云存储还有一个独一无二的特性——支持用户将文件从客户端直传到云服务器中的相关文章

第一个go的web程序;调用七牛云存储的音频api问题解决;条件搜寻文件里的内容

package main import ( "html/template" "io" "io/ioutil" "log" "net/http" "os" "path" "runtime/debug" ) const ( ListDir      = 0x0001 UPLOAD_DIR   = "./uploads" TEMPLA

《介绍一款开源的类Excel电子表格软件》续:七牛云存储实战(C#)

?? 两个月前的发布的博客<介绍一款开源的类Excel电子表格软件>引起了热议:在博客园有近2000个View.超过20个评论. 同时有热心读者电话咨询如何能够在SpreadDesing中实现存储Excel云文件,既通过云方式读取.加载Excel文件.在本文,我们就大家关心的云存储进行实战操练---基于SpreadDesign源码基础. 系统必备: 本文选用的国内比较流行的七牛云存储. SpreadDesign.exe已经升级为最新的Spread Studio 8.35.20143.0内核 .

WP集成七牛云存储(原创)

借助:七牛镜像存储 WordPress 插件 https://wordpress.org/plugins/wpjam-qiniu/ 安装本插件1.4.5及以上版本,请先安装并激活WPJAM BASIC插件.如果是使用1.4.5以下版本,WPJAM BASIC插件已包含七牛插件,如果启用WPJAM BASIC插件,请先停用插件. 个人总结: 1.在七牛设置一个公开的空间 2.绑定域名在加速域名这里填写自己的网站的二级域名,比如:cdn.yoursite.com .最后点击创建. 3.去你的网站域名

wordpress使用video.js与七牛云存储实现无广告视频分享应用

video.js是一款极受欢迎的基于HTML5的开源WEB视频播放器,其充分利用了HTML5的视频支持特性,可以实现全平台的无视频插件播放功能,对于现在流行的手机.PAD等移动智能终端有极佳的应用体验.对于不支持HTML5特性的老版本的浏览器,其内置了Flash播放器,可自动无缝地切换至Flash媒体播放器模式. 本人有多个TB级的百度个人存储空间,但自从百度开始对BCS进行收费,似乎对个人云存储PCS的态度开始暧昧起来,发个PCS API授权申请十几天也没人回应.最近千牛的广告挺火,口碑也不错

我为什么选择七牛云存储

在写这篇文章之前先给大家分享一个小福利:2017最新七牛云存储九折优惠券:61d1fd4d 接下来给大家谈一下我用七牛云存储的原因,从七牛一开始的时候我就开始用了,刚开始的时候七牛好像只是做静态存储,那时候我把自己的网站放在七牛上,当然只是一些静态的页面,但是对于一个初中生来说,能做出一个能访问的网站已经很高兴了,当然,那个网站是我自己用记事本一个一个打出来的代码.当时满满的自豪感. 经过了好几年,七牛已经迅速发展成国内数一数二的云存储服务商了.目前的七牛不知在云存储方面位居国内前列,在cdn加

使用七牛云存储解决ios7.1的app部署问题

使用七牛云存储解决ios7.1的app部署问题 一.问题描述 开发完ios版本的app.需要将.ipa文件和.plist文件打包上传,供用户下载,在线安装.用户安装过程简单描述如下: 首先通过手机浏览器safari或者扫描二维码获取到下载.plist的地址.然后浏览器会自动跳转到这个地址,下载.读取.plist.(用户跳转的地址是.plist的下载地址.)这个过程,显然使用http协议来下载.plist文件.最后,iphone通过读取.plist文件中配置的.ipa下载地址,来安装.ipa文件,

七牛云存储Python SDK使用教程 - 上传策略详解

文 七牛云存储Python SDK使用教程 - 上传策略详解 七牛云存储 python-sdk 七牛云存储教程 jemygraw 2015年01月04日发布 推荐 1 推荐 收藏 2 收藏,2.7k 浏览 本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工作. 前言 我们在上面的两节中了解到,客户端上传文件时,需要从业务服务器申请一个上传凭证(Upload Token),而这个上传凭证是业务服务器根据上传策略(PutPolicy)来生成的,而这个生成过程中

PHP使用七牛云存储之图片的上传、下载、303重定向教程,CI框架实例

网上关于七牛云存储的教程除了官网上的API文档,其他的资料太少了.研究了下API之后,现在已经能实现图片的上传和下载及上传之后的重定向. 首先本篇文章实现的功能如下: 1.利用表单上传功能,用户可以点击选择文件按钮,选择本地的一个文件,同时设定上传的图片的名称,点击上传按钮可以上传并存储到七牛云存储. 2.在点击上传时会检测文件的后缀名,限制为jpg和png格式存储. 3.上传成功后跳转到自己设定的一个URL,并传回文件信息,如文件名.而不是显示七牛白花花的json显示页面. 好啦,那我们开始吧

CodeIgniter - 集成七牛云存储

最近有一个项目需要集成七牛云存储的图片存储和调用功能,程序是基于CodeIgniter2.1.3的PHP框架.刚拿到手完全无从下手的感觉,因为像框架这种东西,想从官方的PHPSDK集成进去,需要改动很多地方.还好,有前辈蹚水,我等后辈直接参考或者说是拿来用了.上传插件采用的是plupload. plupload:www.plupload.com/ 多附件上传控件plupload的使用心得:www.cnblogs.com/luckybird/archive/2013/01/15/2861072.h