ImageResizer输出流内容哈希与预期不匹配

时间:2016-05-01 05:50:52

标签: c# amazon-s3 md5 imageresizer

我在C#中编写一个图像处理服务,它将流作为输入,使用流行的ImageResizer库调整图像大小,然后将结果保存到AWS S3。 作为流程的一部分,我正在创建流的MD5哈希,我在S3 PUT请求中将其设置为MD5Digest。这意味着AWS将重新哈希内容并将其MD5与我提供的内容进行比较,以确保图像在传输过程中没有损坏。

当我将文件上传到我的服务并直接上传到S3时,这一切都很有效,但是如果我在上传到S3之前调整它的大小,那么ImageResizer输出流的散列与S3的预期不匹配(是的,我正在使用已调整大小的图像的哈希,而不是原始图像)

所以我的问题是:除了图像内容之外,ImageResizer输出流中是否有任何内容,如果有,我该如何摆脱它?

谢谢!

1 个答案:

答案 0 :(得分:0)

没关系,我发现了问题。

事实证明,即使我在ImageJob对象上将ResetSourceStream设置为“true”,在计算哈希值之前,流的位置也没有重置为0,这意味着我几乎总是得到相同的哈希

在计算哈希值之前,手动将流的位置重置为0可以解决问题。