目前七牛已经拥有数千家客户,你会发现其中有不少都是像知乎、Weico、Camera360、美图秀秀、蝉游记和Vida等UGC(用户产生内容)类产品,尤为是在图片社交领域。这是由于,除了我在前面所说的“云存储”比传统方案更节省成本外,七牛云存储还有一个独一无二的特性——支持用户将文件从客户端直传到云服务器中。由于我看过蝉游记CTO Quake撰文写过这一特性,因此就直接引用他的原文来作说明:html
常见的云存储上传文件流程通常以下:api
用户 =>应用服务器 =>云存储提供商七牛云存储
这样多了一次上传的流程,和本地存储相比,会相对慢一些。安全
而七牛提供了客户端自传的功能,流程能够改为:服务器
用户 =>七牛 =>应用服务器架构
用户直接上传到七牛的服务器,经过DNS智能解析,七牛会选择到最近的最合适的ISP服务商节点,速度会比原先快不少,上传成功之后,七牛的服务器使用回调功能,只须要将很是少的数据(好比key)post回应用服务器,应用服务器进行保存便可。运维
开发者若是但愿使用这个功能只需在产品里添加相关的SDK便可,另外,七牛也在架构中提供了“上传加速”服务,能够为用户智能选择最近的数据中心和最快的线路进行数据上传,从而达到最佳的上传速度。这个技术的难点在于必须保证数据中心间数据的一致性,我在《Facebook最伟大的技术成就有哪些?》一文中详细阐述这一作法的重要性。工具
除了速度之外,开发者通常还会关心另外两个问题:数据的安全性和数据的迁移成本。post
在安全性方面,目前七牛云存储使用了3副本备份以及多数据中心备份来保证防止数据丢失的安全性,并经过将数据分块存储于多个服务器等多种安全措施的组合来防止数据被窃取。调试
在迁移成本上,七牛云存储开发了几个工具来帮助用户进行数据迁移:
1. 镜像存储。可以在不更改原站数据的状况下,被动地抓取原站数据,并把数据保存在七牛云存储上。
2.上传工具。可以直接同步本地目录及其子目录下的全部文件到服务器云端。
3.定时同步工具。开发者能够设置定时检测本地文件的改变,并同步修改部分,还能设定同步删除。
除了以上3个工具外,他们也提供经过硬件导入的大型数据的迁移服务。不过不一样于其余的云存储服务,七牛云存储并不兼容亚马逊S3,因此使用亚马逊S3服务的产品迁移过来会相对麻烦一些。
固然,除了速度、稳定性和迁移成本外,为了更好地为开发者服务,参与市场竞争,如今的云存储厂商也开始在基础云存储服务上提供一些轻量的PaaS服务。例如七牛就针对图片和音视频等富媒体内容提供了云端处理服务,好比对应视频云存储推出了音频/视频的转码和截取工具,同时他们可以支持100MB以上的视频存储。他们也针对开发者提供了一些开发环境下的调试工具。
做为一家创业公司,七牛在两年内的业务发展速度很快,但他们的公司人数却没有与之成正比——目前为止,团队成员大约40人,其中90%都是技术人员。七牛也但愿经过技术手段来提高每一位员工的生产率,好比尽量的将运维系统自动化从而保持团队的精炼。他们将当前的重心放在了服务能力的扩增上——目前七牛在全国已经有超过500个加速节点,2012年年末拿到的融资可以让他们在今年更好地实施这一计划。
http://developer.qiniu.com/
在七牛云存储中,整个上传流程大致分为这样几步:
须要注意的是,回调到业务服务器的过程是可选的,它取决于业务服务器颁发的 上传凭证。若是没有回调,七牛会返回一些标准的信息(好比文件的 hash)给客户端。若是上传发生在业务服务器,以上流程能够天然简化为:
http://developer.qiniu.com/docs/v6/sdk/c-sdk.html
http://www.gougousoso.com/u/yun/8.html