Java/Apache Tika:如何从URL获取文件的最后修改/创建属性



我想使用 Java 来获取上次修改时间和 HTTP 服务器上文件的创建时间。该文件位于特定 URL 中。使用 URLConnectionHttpURLConnection 的方法从 HTTP 标头生成"上次修改时间"属性,但这不是文件的实际创建日期。

我一直在读Apache Tika是这项工作的图书馆。但是,我无法找到一个可以做我想做的事的工作示例。最接近的例子也许在这里。但是当我运行该帖子中给出的代码时,它不会产生上次修改的属性。

我正在使用此答案中给出的部分方法,我认为该方法可能有效,但目前没有打印任何内容。

Parser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();

URI u = new URI("https://sec.gov/Archives/edgar/full-index/2015/QTR4/master.idx");
InputStream is = new BufferedInputStream(new FileInputStream(new File(u)));
parser.parse(is, handler, metadata, new ParseContext());
System.out.println("Creation Date" + metadata.get(Metadata.CREATION_DATE));
System.out.println("Last Modified Date" + metadata.get(Metadata.LAST_MODIFIED));

当您使用 URLConnection 下载文件时,HTTP 标头对 Tika 是隐藏的。

Tika 在这里可以读取的所有内容都与您保存文件并在其上打开流时相同

这意味着创建日期和上次修改日期

将是保存文件时使用的日期和上次修改日期(与使用操作系统浏览器[Windows资源管理器,nautilus...]看到的相同)。

如果您需要读取该文件上的HTTP标头,请不要使用Tika,而是直接使用HTTPUrlConnection或任何其他HTTP客户端,例如(https://hc.apache.org/httpcomponents-client-4.5.x/)或其他问题中提出的方法。

相关内容

  • 没有找到相关文章

最新更新