2
我正在爲gridfs使用java MongoDB驅動程序,並希望在保存之前使用MD5哈希來檢查文件是否已經存在。基本上我正在嘗試在Java中執行this。如何在保存到gridfs之前計算文件的MD5
我試圖DigestUtils
從apache的共編解碼器以下邏輯:
public GridFSDBFile save(InputStream inputStream, String contentType, String filename) throws IOException {
String md5 = DigestUtils.md5Hex(inputStream);
List<GridFSDBFile> md5match = gridFs.find(new BasicDBObject("md5", md5));
if (md5match!=null && md5match.size()>0) {
return md5match.get(0);
} else {
GridFSInputFile input = gridFs.createFile(inputStream, filename, true);
input.save();
return gridFs.findOne(input.getId())
}
}
在底層實現尋找,既DigestUtils
和MongoDB驅動程序使用MessageDigest.getInstance( 「MD5」)來計算MD5哈希值。但是,看起來由DigestUtils
生成的md5哈希碼與gridfs生成的不一樣。覆蓋GridFSInputFile中的「md5」鍵也不起作用。