之前做分片上传相关的服务,都是直接把文件存放在服务硬盘中。主要思路是:客户端或者浏览器端,提供一个接口通过 md5,分片索引,总分片数来查寻是否上传过分片,还提供一个接口,给调用方上传分片内容,最后,再提供一个接口给客户端调用,通知服务端文件上传完成。于是,服务端就开始合并分片文件,解压,然后保存文件相关信息。
现在的情况是,由于上传服务器有多台机器了,并且要把文件存放在 gridfs 或者 minio 的存贮服务。
我的思路是接口还用原来定义的接口,只不过原来分片存在服务器的操作变成直接上传到存贮服务,最后,合并分片操作变成合并存贮服务中的分片文件。
现在有几个疑问是:
1,如何把分片内容直接传到存贮服务中? 2,如果还是根据原来的思路先把文件上传到服务器中,然后,再上传到存贮服务,这样是否有画蛇添足的感觉,而且效率肯定没有之前的实现快了,最后这种思路还有个问题,需要保证同一个用户上传同一个文件所有分片都在同一个服务器上(虽然可以根据负载均衡策略做到,但是总感觉这样反而麻烦) 3. 如果可以把分片直接上传到 minio 或者 gridfs 中,(我查看相关接口是可以把分片上传到存贮服务中),然后,直接调用 gridfs 或者 minio 相关接口进行合并应该最好的。但是,如何在相关存贮服务进行合并分片的操作(在 gridfs 或者 minio 接口都没有找到相关的接口)?
这里先谢谢了!!如果上面的做法有问题,能否提供下正确的思路。
1
ttxshang OP 周末发帖,感觉没人回答,工作日人工置顶下。
|