文件分块上传记录存储在redis中问题

来源:6-9 编码实战:实现取消分块上传接口

去则不闲

2020-10-11

老师,您在网课上的逻辑是:如果要删除分块上传文件的redis中记录,前端只需要传给后端一个fileHash即可。后端先根据此fileHash值在redis中找到与其对应的uploadId,如果此uploadId存在,则再删除此uploadId对应的fieldKey,如果不存在直接返回。
但是我有个疑问,在分块文件初始化信息那块,前端已经可以拿到后端发过来的uploadId了,那在删除分块文件逻辑处,前端为什么不直接传给后端此uploadId呢?这样就可以避免在redis中另外花费空间存储fileHash和uploadId的映射关系了。是不是前端没办法,或者会花费很大代价存储uploadId?

写回答

1回答

xiaomo

2020-10-12

同学你好,在CancelUploadHandler接口中,就是通过uploadId来进行redis记录的清除的呀。另外redis中分块上传的缓存信息是有时效的,超时后redis会自动清理记录。另外之所以维持filehash和uploadId之间的映射关系,主要是为实现断点续传功能,一般认为客户端本地的数据是不可靠的(一些原因可能会导致app本地的数据丢失,而重新需要从服务端获取);当客户端上次上传文件没上传完,再重新请求上传时,如果发现有filehash和uploadId映射记录,则可以从上次传输的进度开始继续进行上传。

0
1
去则不闲
非常感谢!
2020-10-14
共1条回复

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 493 问题

查看课程