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

2013-07-14 23:38:31 +08:00
 supersheep
功能还在开发中,不过先把心得体会,主要还有踩到的坑分享出来一点是一点。东西是很好的,服务也是很热心的,不过可能大概人手不够吧,有些文档似乎已经过时了,所以我是看着蝉游记的请求还有官方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/

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

token拿到随便用感觉现在好像没掐,只不过token生成的时候有个expire,获取token是走自己的应用的,这里可以适当掐一下。
swiming
2013-07-16 14:57:18 +08:00
你说的那两个可能就是同一个接口吧。up.qbox.me/upload,这个才是老接口,域名都不一样,这也是蝉游记现在用的。我用的就是官方的SDK,不过里面没有新接口的Token生成代码,需要自己实现一下,记得加上escape = 1这个参数,不然新接口没法回调成功。我现在也是尽量把token的expire设短一点,方便控制。
oklqh
2013-07-16 15:46:15 +08:00
我想问,七牛好在哪?
supersheep
2013-07-16 16:39:04 +08:00
@swiming 嗯嗯,自己实现的时候看的文档是哪个呢?
swiming
2013-07-17 09:39:59 +08:00
citydog
2013-07-17 11:07:37 +08:00
惭愧惭愧,说好的给人家写使用体验的,好几个月了也没写...
supersheep
2013-07-21 21:09:46 +08:00
今天和七牛的小哥对了一下,发现是自己装sdk的时候api还在老版本,现在已经是新的了。目前的版本是v6。
no13bus
2014-08-01 17:07:26 +08:00
@supersheep 给你发了封邮件。嘻嘻。有点事要麻烦您。
pke
2015-06-27 21:37:24 +08:00
我也在用 没问题,就是不知道怎么设置多个browse_button

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/75770

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX