关于七牛批量下载空间文件

佐手、 提交于 2020-12-19 06:15:47

  我的项目是一个比较大的工程,前端可以理解为安卓客户端,服务端是采用JFinal这个框架。这个框架的作者是我很欣赏的技术大牛@JFinal 。我在这里极力推荐那些进行服务端或是API开发的同学或是工作者,采用这个框架进行开发,因为它会给你一种极速的体验,用过之后请自觉对比一下用JFinal与用struts之间的区别,这个谁用谁知道。Jfinal官网:http://www.jfinal.com 开发中遇到这种问题都可以请教@JFinal ,和蔼可亲,平易近人。不过个人建议简单的那些问题例如配置出错什么的还是自行解决,大的费解的问题可以直接骚扰@JFinal ,没有问题的,本人亲测!哈哈。。。然后我再推荐一下七牛云,如果你开发的项目需要存储大量的文件,我个人真心推荐七牛云,官网:http://www.qiniu.com ,本人在七牛的使用中遇到了问题,然后去论坛发帖,第二天就收到了七牛技术支持人员的电话,大家可以自行体会本人当时的激动心情。

  废话少说,直接进入正题:

  1.我的项目干什么?

  用户利用安卓客户端在多个topic下上传文件,服务端将这些音频文件进行重命名(TopicId + UserId + 随机6位数 + .文件格式)上传到七牛云下指定的空间(bucket),后期我需要根据文件的文件名进行指定URL下载。


  2.遇到的问题:

  七牛java-sdk没有提供批量下载文件的API接口,这样的话,就需要先得到制定空间下的文件列表信息,在这里,我只需要得到文件的Key就可以了。因为此时批量下载的实现就是需要知道文件的URL地址,一般就是domain+文件名(Key).

  接着,我写了如下的一个action:

  结果得到这样的结果:

返回的json竟然是空的!!!但是在后台可以打印出来,这就奇了怪了!于是,我做了如下操作:

因为我意识到这应该是七牛ListItem的问题,于是想转化成普通常用熟悉的List,但是结果还是:


  3.解决问题:

于是google 七牛的java-sdk的API文档,竟然没有找到。扣了一下脑袋之后,想了想,这个ListItem里有那么几个字段,我直接取出我想要的字段(Key)不就得了,于是我改写了一下action:


直接取key值add进空的list,这个字段是String类型,得到的结果:

浏览器上显示:

再看看七牛空间里的文件:

这样子,得到文件的Key,然后直接根据domain + Key 的URL下载这个文件。我现在还不清楚,JFinal的renderFile(URL)可以解决这个批量下载的不?以我的记忆里来看,应该够呛。

  最后,感谢JFinal + 七牛云存储!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!