javascript - 如何在实际上传之前分析即将上传的文件?

标签 javascript scalability sha

我们目前正在计划一个人们可以上传电影的网站。查看 YouTube 时,您会注意到某些电影被上传了两次或更多次(由不同的用户)。为了扩展我们的应用程序,我们正在考虑以下想法:

  1. 用户选择要上传的电影文件
  2. JavaScript 将从文件中获取 SHA256 哈希值(它比 MD5 哈希值更准确),然后再上传
  3. 网站将检查哈希值是否已经存在
  4. 如果哈希值不存在,则上传文件
  5. 如果散列确实存在,将提示一条消息或将创建对服务器上现有版本的引用。这没有上传视频。

问:我们如何使用 JavaScript 分析文件以获得 SHA256 哈希,SHA256 足够好还是我们应该考虑 SHA512(或其他算法)?

最佳答案

使用 HTML5 文件 API 读取文件:http://www.html5rocks.com/en/tutorials/file/dndfiles .下面是计算SHA-256的JS代码:http://www.webtoolkit.info/javascript-sha256.html

我必须补充一点,我从未尝试过,但这似乎是可能的。 Alxandr 是对的,这对于大型视频来说会花费很长时间,但您可以尝试使用 WebWorker API 以免卡住浏览器:http://html5rocks.com/en/tutorials/workers/basics

关于javascript - 如何在实际上传之前分析即将上传的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8372548/

相关文章:

javascript - 如何创建一个包含动态 Div 数组列表的数组

c# - 哪些用例场景最适合发布/订阅模式?

mysql - MYSQL表添加复合索引

Java和Hash算法比较文件

c - SHA1 消息摘要到纯文本

ruby-on-rails - Digest::SHA2.hexdigest() 在哪里定义?

javascript - 将 JSON 反序列化为通用列表

javascript - React 组件中的 OnClick 相关功能不起作用

javascript - Ember 计算属性 _super

python - Flask 用户管理 : How to make Stateless Server using better authentication ways?