请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答

1回答

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

0 回复 有任何疑惑可以回复我~
  • 提问者 去则不闲 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-10-14 08:31:36
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信