Jackrabbit WebDAV 如何生成 eTag 标头?



我有一个在Tomcat中运行的Jackrabbit WebDAV服务器,我想知道ETag标头值是如何生成的。什么阶级在生产它?

如何使用基于Jackrabbit存储库中的初始文件及其路径的Java生成它?

预期流程:

  1. 初始文件上载到服务器
  2. 如果客户端正在上传新文件:计算 ETag 并将其与服务器上文件的相应 ETag 进行比较。
  3. 如果值相同 - 不上传文件,向客户端发送响应。如果值 deffer - 替换服务器上的文件。

我相信服务器将使用jcr:etag属性(https://docs.adobe.com/content/docs/en/spec/jcr/2.0/3_Repository_Model.html#3.7.12.1%20mix:etag(,否则会尝试根据时间戳和文件长度生成一些东西。

后来在Jackrabbit源代码中,我发现了这个:

if (length > IOUtil.UNDEFINED_LENGTH && modTime > IOUtil.UNDEFINED_TIME) {
String etag = """ + length + "-" + modTime + """;
context.setETag(etag);
}

地点:modTime = Callendar#getTimeInMillis();

因此,在下一个模式上生成 etag:字节为单位的大小 -修改日期转换为 Long。

相关内容

  • 没有找到相关文章

最新更新