8

重複したファイルを保存しないようにしています。しかし、私たちのmd5結果は常にBlobInfoとは異なります。我々はそれを計算する方法md5Hashはcom.google.appengine.api.blobstore.BlobInfoの計算方法

MessageDigest messageDigest = java.security.MessageDigest.getInstance("MD5"); 
    digest = messageDigest.digest(bytes); 
    String digestString = DigestUtils.md5Hex(digest); 

それは一致しません:

google vs my own calculation: 
8cdeb6db94bc4fd156e2975fd8ebbcf2 vs 9003b37afbf3637de96c35774069453f 
65a25dafcba58d16d58a9c7585cc3932 vs 52383159f7d27417d50121aaee2728b5 
5cccc2d690fdc0c254234d5526876b34 vs 8196da9b6733daa60e08d927693df483 

これは、運用サーバー上にある:(new BlobInfoFactory().loadBlobInfo(blobKey)).getMd5Hash();

例の不一致で。 (私たちは開発環境をテストしませんでした)

+0

devappserverまたはprodでこれを試していますか? –

+0

あなたはあなたが得ているものと期待しているものを投稿することができますか?また、どのような種類のファイルをアップロードしていますか? –

+0

両方の質問に答えました。ファイルは通常pdfとimages(jpeg)です。 –

答えて

7

Sebastian Kreftはコメントの上で上記の議論の通りです。

コピーしたコードが間違っています。それだけで次のようになります。

String digestString = DigestUtils.md5Hex(bytes); 

セバスチャンKreftは常にd41d8cd98f00b204e9800998ecf8427eする必要があり、空のファイルのMD5を確認するためにトリックを使用しました!