如何在 FineUploader Azure 请求中包含 Content-MD5 header?

How to include Content-MD5 header in FineUploader Azure request?

我想使用 Content-MD5 header 为 Azure 提供正在上传的文件的 client-side 生成的 MD5 散列。我将如何在 FineUploader 中完成这个任务?

目标受众:Firefox、Chrome、Safari、Opera 和 IE10+。

根据 this answer 判断,我认为这应该是可能的,但我们至少有一半的客户会 运行 在非常旧(慢)的计算机上。那么这种客户端MD5哈希方法是否可行?

一些相关的附带问题: 我还认为设置最大文件大小以减少 MD5 哈希算法的压力可能是明智的。也许刚好低于 Azure 的 "chunking" 限制?从另一个角度看:我可以禁用分块吗?

Fine Uploader 通过 the getFile(id) API method. Once you have access to this, you can make use of FileReader to read the file/blob bytes and generate a hash. To make hashing even easier, consider using a JS library like SparkMD5.

提供对底层 FileBlob 对象的直接访问

计算此哈希值的最佳位置可能是 onSubmit callback handler. Since the process of reading a file is asynchronous, you will have to return a promise in your handler, which is supported by Fine Uploader. Once the hash has been calculated, resolve the promise and set the hash as a parameter for the file using Fine Uploader's setParams API method

Can I disable chunking?

是的,您可以,但是您将失去与分块相关的所有好处,以及恢复功能和高效重试(如果文件上传中途失败)。