Java/Apache Tika:如何从 URL 获取文件的最后一个 modified/created 属性
Java/Apache Tika: How to get the last modified/created attribute of a file from URL
我想使用 Java 获取 HTTP 服务器上文件的最后修改时间和创建时间。该文件位于特定 URL。使用 URLConnection
和 HttpURLConnection
的方法从 HTTP header 生成 Last-Modified 属性,但这不是文件的实际创建日期。
我一直在读 Apache Tika is the library for the job. However, I have not been able to find a working example that does what I want. The closest example is perhaps here。但是当我 运行 post 中给出的代码时,它不会产生最后修改的属性。
我正在部分使用 this 答案中给出的方法,我认为它可能有效,但目前不打印任何内容。
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 headers 对 Tika 是隐藏的。
Tika 在这里可以阅读的所有内容与您保存文件并在其上打开流时的内容相同
这意味着创建日期和最后修改时间将是保存文件时使用的日期(与您使用 OS 浏览器 [Windows 资源管理器、nautilus...看到的相同) ).
如果您只需要读取该文件上的 HTTP headers,请不要使用 Tika,而是直接使用 HTTPUrlConnection
或任何其他 HTTP 客户端,例如 (https://hc.apache.org/httpcomponents-client-4.5.x/) or the methods proposed in this other question.
我想使用 Java 获取 HTTP 服务器上文件的最后修改时间和创建时间。该文件位于特定 URL。使用 URLConnection
和 HttpURLConnection
的方法从 HTTP header 生成 Last-Modified 属性,但这不是文件的实际创建日期。
我一直在读 Apache Tika is the library for the job. However, I have not been able to find a working example that does what I want. The closest example is perhaps here。但是当我 运行 post 中给出的代码时,它不会产生最后修改的属性。
我正在部分使用 this 答案中给出的方法,我认为它可能有效,但目前不打印任何内容。
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 headers 对 Tika 是隐藏的。
Tika 在这里可以阅读的所有内容与您保存文件并在其上打开流时的内容相同
这意味着创建日期和最后修改时间将是保存文件时使用的日期(与您使用 OS 浏览器 [Windows 资源管理器、nautilus...看到的相同) ).
如果您只需要读取该文件上的 HTTP headers,请不要使用 Tika,而是直接使用 HTTPUrlConnection
或任何其他 HTTP 客户端,例如 (https://hc.apache.org/httpcomponents-client-4.5.x/) or the methods proposed in this other question.