【发布时间】:2012-02-20 17:09:17
【问题描述】:
最近我在Java 中实现了一个使用Google Docs API v3.0 的应用程序。新条目是这样创建的:
DocumentListEntry newEntry = new DocumentListEntry();
newEntry.setFile(file, Common.resolveMimeType(file)); //Common is a custom class
newEntry.setFilename(entryTitle.getPlainText()); //entryTitle is a TextConstruct
newEntry.setTitle(entryTitle);
newEntry.setDraft(false);
newEntry.setHidden(file.isHidden());
newEntry.setMd5Checksum(Common.getMD5HexDigest(file));
相信我,Common.getMD5HexDigest(file) 返回一个有效且唯一的 MD5 十六进制哈希。
现在,文件上传正常,但在检索文件并通过entry.getMd5Checksum()方法检查MD5校验和时,它总是返回null。
我什么都试过了,甚至设置了ETag、ResourceID 和VersionID,但它们都被默认值覆盖(null 或服务器生成的字符串)。
【问题讨论】:
-
抱歉,如果你声称 Common.getMD5HexDigest(file) 返回一个唯一的哈希值,我不相信你。
-
@jarnbjo 我已经用方法代码更新了问题。
-
因此,您使用的哈希不仅不唯一,而且也不正确。
-
@jarnbjo 它是唯一的,因为它是文件路径哈希的 MD5 哈希(对于任何给定 PC 中的 Windows 文件系统中的每个文件都是唯一的)。为什么它不正确?我看到 32 字节的十六进制数据。
-
挑剔,输入可能是唯一的,但输出可能不是。
标签: java md5 google-docs-api