前端上传的方案是可行的。
-
七牛云的代码支持以下三个回调: before, progress, complete, uploaded。除了上传进度无法把握外,其它的控制都是有的。 所以对于前端来说,可以估计一个合理的进度处理,提高展示效果。 七牛的API在DOM关联上的设计确实并不是很好,但是DOM的控制还是比较灵活的,所以可以通过其它的组件做交互,通过jquery触发事件来调用文件上传功能。这个功能应该可能需要花时间
-
前端上传的同时要将上传的文件信息返回到服务器,也就是服务器仍需要有文件相关的API
并处理好文件名的保存,同时也要将返回的七牛信息传回到服务器。
也就是后端仍需要有一个文件的管理服务。
记录每个上传的文件的信息和状态。
而前端上传,只是一种压力的缓解的办法。
- 无论是前后还是后端都需要有一个中间层来隔离这种异步存储的差别。
如果隔离可以参考我的file-cloud-uploader,目前支持阿里云,aws。你也可以添加七牛的adapter.
https://github.com/calidion/file-cloud-uploader
-
通常有一个自己的文件上传服务器是必要的。 因为只有自己的服务器才能统一的处理异构的文件服务,并且对于上传频烦的业务,网站本身要对上传的处理进行精细化处理。也是必要的。 但是如果在技术水平还没有达到时,可以考虑直接使用单一的云存储,节约开发与人力成本。
-
当你们的上传内容包含有更多的类型的文件时,有自己的管理平台最终肯定是必须的。七牛等平台只是分发的平台。你们自己最终仍需要一个系统对文件进行业务上的管理。
-
直接与间接,或者设置专门的服务器都是可行的。 可以根据实际的需要进行选择。
建议必须完成的事情是:
1、服务器完整记录文件的信息,以及文件的关联信息,将所有的文件独立管理,并且将文件与业务的关系保存好。
2、使用统一的内部hash算法严管理文件。
3、前期使用前端上传,后期可以根本实际进行调用。
以上是我对所描述的问题的分析与提供的建议。实际还是需要选择一个最容易达成的方案,不断的演进,完善。 谢谢。希望能解答到你问题。