开发要判断文件的唯一性,所以要获取Hash。在github上有go和php的实现方法,但是两种语言都看不懂,无法转换,官方能发布C#.Net获取文件Hash的方法吗。
开发要判断文件的唯一性,所以要获取Hash。在github上有go和php的实现方法,但是两种语言都看不懂,无法转换,官方能发布C#.Net获取文件Hash的方法吗。
七牛的 hash/etag 算法是公开的。算法大体如下:
hash = UrlsafeBase64([0x16, sha1(FileContent)])
。也就是,文件的内容的sha1值(20个字节),前面加一个byte(值为0x16),构成 21 字节的二进制数据,然后对这 21 字节的数据做 urlsafe 的 base64 编码。hash = UrlsafeBase64([0x96, sha1([sha1(Block1), sha1(Block2), ...])])
,其中 Block 是把文件内容切分为 4M 为单位的一个个块,也就是 BlockI = FileContent[I*4M:(I+1)*4M]
。这是非常简单的一个公式,你完全可以自己依据算法说明写一个 hash/etag 的代码。
7 回答5.3k 阅读
1 回答856 阅读
1 回答845 阅读
1 回答834 阅读
http://developer.qiniu.com/docs/v6/sdk/csharp-sdk.html#rs-stat 这里你看看C#stat返回hash,虽然我不是学习C#的但是他的API请求都是一样的,然后他的API在这里http://developer.qiniu.com/docs/v6/api/reference/rs/stat.html