开发者社区> 问答> 正文

如何使资源下载网站阻止重复资源的上传?

我最近在开发一个资源下载网站。现有一个需求是:在用户上传资源文件之前,客户端计算出要上传文件的MD5,并将其发送到服务端,服务端将得到的MD5值和所有已经上传过的资源的MD5值进行比较。如果遇到与客户端发送的MD5值相同的,则告诉客户端已存在相同内容的资源。否则,客户端紧接着开始上传资源文件。 然而这么做存在一个问题:多个客户端并发地向服务端发送“检查是否有相同内容资源”的请求时,服务端检查过后,客户端纷纷得到没有重复资源的响应。紧接着这些客户端纷纷向服务端上传资源文件,而其中的一些文件是相同内容的。最终导致了相同内容的资源被上传到了服务端。所以请教社区里的各位高手,有没有好的解决方案。

展开
收起
海边一只船 2020-06-01 14:54:21 801 0
1 条回答
写回答
取消 提交回答
  • 推荐上传的时候只取库里查询有没有重复的MD5,而不要去管并发上传的问题,你可以设想一下,如果你担心并发问题,而只让第一个人上传,后面的都提示他文件已存在。这时候万一第一个人传一半不传了呢?所以与其担心并发问题,还不如来个定时任务,定期检查重复文件然后删除。毕竟并发的上传同一个文件属于比较低概率的事件,不值得太废心思。

    2020-06-01 14:54:29
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
面向失败设计 立即下载
内容驱动游戏分发 立即下载
SEO学习步骤 立即下载