请稍等 ...
×

采纳答案成功!

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

删除临时文件的时机问题

老师,请问,照理来说,文件上传到oss后,就可以通知上传服务器删除临时文件了,但是如果临时文件很大,这时用户从上传服务器下载临时文件下载到一半又不能删除,怎样做一个机制让用户下载完之后再删除呢?

正在回答 回答被采纳积分+3

1回答

xiaomo 2019-04-10 22:56:21

同学你好,关于临时文件的删除问题,一般有这些方案:

1)一个下载的url会有时效性,比如4个小时,如果4个小时后依然不能下载完文件,那么就需要重新获取url再下载;所以可以设置一个静态时间段,使得上传的临时文件4个小时后就会被自动删除(不过如果上传量大,可能磁盘会爆炸);

2)把一个小型规模的私有云集群当做临时存储,也就是用户上传的文件只有写入私有云存储(Ceph)里才算上传完成,在文件转移到OSS之前都可以从Ceph里下载;因为是一个集群,对于方案1来说它的存储空间更大,文件保留的时间可以更长,比如3天后或者集群使用空间达到阈值时才通知删除;

3)增加一个下载计数器,比如在redis里缓存当前每个文件从临时存储里下载的数量。在文件转移OSS之前,每有一个新的下载请求到达,计数器加1;每有一个下载完成,当前文件的计数器减1;等到计数器变为0,或者从上传后的一小段时间内都没有下载请求,那么就可以通知去删除这个临时文件了。

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号