2016-05-01 52 views
0

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

当我上传一个文件到我的服务并直接上传到S3,但是如果我在上传到S3之前调整它的大小,ImageResizer的输出流的散列与S3所期望的不一致(并且是,我使用的是调整图像的哈希值,而不是原始图像)

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

谢谢!

回答

0

没关系,我发现了这个问题。

所以事实证明,即使我已经在ImageJob对象上设置了ResetSourceStream为“true”,在计算散列值之前,流的位置并未重置为0,这意味着我几乎总是得到相同的哈希值。

在计算散列值之前手动将流的位置重置为0可修复问题。