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

七牛云用下来的心得,和坑

  •  
  •   supersheep · 2013-07-14 23:38:31 +08:00 · 18942 次点击
    这是一个创建于 3948 天前的主题,其中的信息可能已经有所发展或是发生改变。
    功能还在开发中,不过先把心得体会,主要还有踩到的坑分享出来一点是一点。东西是很好的,服务也是很热心的,不过可能大概人手不够吧,有些文档似乎已经过时了,所以我是看着蝉游记的请求还有官方sdk的源代码才弄对的。

    大致流程呢,就是通过你的app生成一个token,client拿这个token去上传,然后七牛会从这个token得到一些信息,然后再把这些信息交还给你的app。

    大家看这个文档 http://docs.qiniu.com/api/put.html#upload-api
    里面写了要上传到up.qiniu.com,带上token和key,key就是文件名

    但是我照着这个做死活不对,提示scope not specified之类的。
    结果发现蝉游记也好,官方sdk的后端上传也好,里面用的都不是这个接口,而是up.qiniu.com/upload

    参数是auth(值是token)和action(包含了以“/”分隔的键值对,值以base64加密,大概会是这个样子: /rs-put/VHJpcFBob3RvOjUzODYyLzEzNzM4MTMwMTI4ODlwMTd2ZXE1dWM4MXExbTY4czFsZjgxZmUzMWF1dTIuanBn/mimeType/aW1hZ2UvanBlZw==/rotate/0


    sdk里的代码(至少python sdk是的)并没有把生成action的方法独立出来,因为文件传到后端,该取到的文件名啊mimetype你都能取到了,直接上传就好了。

    不过大多数时候,都是客户端直接传七牛的服务器会更加有效率一点,就会用到swfuploader之类的,那就要自己在客户端把这段逻辑实现一下了。目前看七牛好像没提供这样的sdk,我慢点做成模块就来一发,大家也可以自己搞不是很麻烦的样子,base64算法什么的也有现成的 http://mshang.ca/base64-js/

    大概就是这样啦。
    12 条回复    2015-06-27 21:37:24 +08:00
    dtynn
        1
    dtynn  
       2013-07-15 19:18:24 +08:00
    我的应用也是采用客户端直传,但是多做了一个接口给前端获取token,似乎没有遇到token发面的问题。
    wingoo
        2
    wingoo  
       2013-07-15 19:29:32 +08:00
    客户端直传有没可能被人拿到token随便上传?
    swiming
        3
    swiming  
       2013-07-16 10:19:27 +08:00
    七牛的文档是没有及时更新,折腾了很久之后,终于可以直接上传新接口up.qiniu.com了。不过客户端直传这种方式有个问题就是,你很难对上传内容做校验,比如文件大小,格式,上传次数等等。希望他们可以在token里面加入这些配置。
    supersheep
        4
    supersheep  
    OP
       2013-07-16 13:17:36 +08:00
    @swiming 话说 up.qiniu.comup.qiniu.com/upload 到底哪个是新接口啊?你是怎么上传的呢?

    token拿到随便用感觉现在好像没掐,只不过token生成的时候有个expire,获取token是走自己的应用的,这里可以适当掐一下。
    swiming
        5
    swiming  
       2013-07-16 14:57:18 +08:00
    你说的那两个可能就是同一个接口吧。up.qbox.me/upload,这个才是老接口,域名都不一样,这也是蝉游记现在用的。我用的就是官方的SDK,不过里面没有新接口的Token生成代码,需要自己实现一下,记得加上escape = 1这个参数,不然新接口没法回调成功。我现在也是尽量把token的expire设短一点,方便控制。
    oklqh
        6
    oklqh  
       2013-07-16 15:46:15 +08:00
    我想问,七牛好在哪?
    supersheep
        7
    supersheep  
    OP
       2013-07-16 16:39:04 +08:00
    @swiming 嗯嗯,自己实现的时候看的文档是哪个呢?
    swiming
        8
    swiming  
       2013-07-17 09:39:59 +08:00
    citydog
        9
    citydog  
       2013-07-17 11:07:37 +08:00
    惭愧惭愧,说好的给人家写使用体验的,好几个月了也没写...
    supersheep
        10
    supersheep  
    OP
       2013-07-21 21:09:46 +08:00
    今天和七牛的小哥对了一下,发现是自己装sdk的时候api还在老版本,现在已经是新的了。目前的版本是v6。
    no13bus
        11
    no13bus  
       2014-08-01 17:07:26 +08:00
    @supersheep 给你发了封邮件。嘻嘻。有点事要麻烦您。
    pke
        12
    pke  
       2015-06-27 21:37:24 +08:00
    我也在用 没问题,就是不知道怎么设置多个browse_button
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   809 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:14 · PVG 06:14 · LAX 15:14 · JFK 18:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.