2016-05-01 63 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可修復問題。