V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
niuer
V2EX  ›  程序员

云存储应用场景全总结 –App、HTML5、Web 应用篇

  •  
  •   niuer · 2015-01-23 10:23:24 +08:00 · 2398 次点击
    这是一个创建于 3596 天前的主题,其中的信息可能已经有所发展或是发生改变。

    [前言]:
    七牛目前已服务超过15万家企业和开发者用户,这些用户的应用场景也各有不同,推出这个系列的文章,希望通过对这些场景的全面解析,可以帮助开发者们减少在云服务使用过程中的弯路。

    前两期我们重点说了:
    云存储应用场景全总结 – 音视频篇
    云存储应用场景全总结 –图片应用篇
    今天,我们要介绍的是App分发、HTML5以及Web等应用场景。

    一、HTML5 类应用

    利用微信朋友圈进行传播的HTML5小游戏正逐渐被行业重视,且将PC端的经典产品改编成H5游戏也或将成为一种趋势。似乎在微信内此路仍可成型——开发多款不同类型的小游戏,利用话题性和病毒性进行传播聚集在自己的平台,利用各种渠道进行传播,将用户导向自己。

    而七牛平台也在过去一年里有幸见证了这一类应用的崛起,并且承载了很多此类的应用的云服务。据我们发现,HTML5这类应用对云服务比较关注的有两点:

    1、HTML5应用中的图片资源、html、css资源在移动端的访问速度效果如何

    七牛CDN对移动、联通、电信这些主要运营商的网络都有广泛的节点覆盖,访问速度通过17ce、阿里测、奇云测,都可以对各地区访问资源的速度进行测试,同时七牛除了提供HTTP域名,还提供了HTTPS域名,可以给需要SSL通道访问的Web应用提供一条优秀的链路选择。

    2、如果应用中的资源发生更新,多久可以访问到最新的资源

    由于七牛的CDN加速依赖CDN节点上的缓存,所以资源在七牛的空间上更新后,如果直接访问原有资源的URL,并不能马上获取的最新的文件,但是可以通过URL+?v=20150115这样的形式获取到最新的资源,所以建议在资源更新之后带上问号参数对资源进行访问。

    七牛平台上已经积累了很多专注于HTML5的开发者,其中不乏已经在该圈颇具之名度的,比如MAKA,未来应用、醋溜新媒体等。以醋溜新媒体为例,以前每次出现微信祈福的H5页面,流量会攀升至几千万,服务器的压力很大,接入七牛后的云存储服务后,UV在短时间内就平稳地达到了1.5亿,在用户体验方面有了显著的改善。

    二、Web应用

    这里指的Web应用主要指的是在网页端对七牛资源进行上传、处理、访问的应用,覆盖面也比较广,和之前的图片类、音视频类应用也有交集的部分,但是也有其特殊之处,一般来说会涉及下面几个方面。

    1、网页客户端的上传是否有相应地工具能够减少开发量

    通过网页客户端上传七牛,七牛官方提供了JavaScrpt的SDK,利用Plupload上传组件对客户端资源进行上传,当然上传时涉及安全机制的部分还得依赖服务端的程序,七牛也提供了丰富的服务端SDK供客户选择。工具方面,七牛也收集了一些为七牛定制的上传工具的插件,开发成本大大减少。

    2、网页客户端的上传速度能否保证

    七牛针对客户端除了默认提供的上传加速服务,另外也提供了断点续上传的接口,来保证大文件上传的稳定性和高效性,具体实现细节在SDK中均有实现。

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

    常见的云存储上传文件流程一般如下:
    用户 =>应用服务器 =>云存储提供商

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

    而七牛提供了客户端自传的功能,流程可以改成:
    用户 =>七牛 =>应用服务器

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

    三、App分发类应用

    App分发的应用场景分两个方面,即上传和下载。而上传一般都是客户的服务端直接控制,所以用户关注的点主要在于下载。


    1、下载速度能否保证,文件下载的完整性能否保证

    下载速度基本依赖于请求下载端的网络状况,七牛不会限制下载带宽,下载的完整性一定程度上也依赖下载端是否进行了完整的下载。如果出现App下载后安装失败,那么首先要做的是,测试在相同网络状况下不同设备的下载安装情况、以及不同网络状况下相同设备的安装情况。

    2、App版本更新后,能否立即访问到最新的资源,能否预推新的资源

    App这样的资源建议直接在文件的文件名中带上版本号,而不是更新资源后使用相同的文件名,因为不能避免会有部分CDN节点上存在旧资源的缓存。但是也可以通过七牛qboxrsctl/qrsctl进行302的重定向设置,将相同URL重定向到不同的资源上。

    3、iOS 7.1以上的企业级APP发布需要https链接,七牛是否提供。

    只要成为七牛的标准用户,都可以直接在七牛的空间设置的域名设置中,创建一个https的链接,manifest.plist文件中,只要将URL设置为七牛提供的https的文件外链,即可轻松通过APP STORE的SSL证书审核。

    [举例说明]客户案例之豌豆荚

    豌豆荚就属于应用场景比较典型的App分发类应用,当然目前豌豆荚业务扩展到了壁纸、小说还有视频,这些项目和之前我们介绍的图片展示类、音视频播放类应用场景差不多。豌豆荚一般通过下面几个方面来使用七牛:

    1、APK文件、图片、视频资源的上传,这个上传一般不是豌豆荚用户直传七牛,因为豌豆荚需要对用户的上传文件进行一些审核,然后由豌豆荚的业务服务器对资源进行上传。同样,七牛不会限制上传的带宽,只要豌豆荚的机房出口带宽有多大,我们就能有多大的入口带宽。

    2、APK文件的下载同样也是通过七牛的CDN加速通道,加速效果可以任意下载一个豌豆荚的链接就能体会到,不过豌豆荚的文件名本身会带上版本号,所以新的版本发布不会存在访问文件仍然是旧文件的现象,这个也是七牛推荐的更新文件的方式。当然如果必须使用相同的文件名,那么就建议用3xx的重定向服务了。

    七牛上的应用场景随着用户的增多也越来越丰富,我们还在继续挖掘有意思的场景,希望以不同的形式展现给开发者。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2831 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 00:25 · PVG 08:25 · LAX 16:25 · JFK 19:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.