2017-01-10 15 views
0

Я хочу использовать Java для получения последнего измененного времени и времени создания файла на HTTP-сервере. Файл находится по определенному URL-адресу. Методы с использованием URLConnection и HttpURLConnection дают атрибут Last-Modified из HTTP-заголовка, но это не фактическая дата создания файла.Java/Apache Tika: как получить последний модифицированный/созданный атрибут файла с URL-адресом

Я читал, что Apache Tika является библиотекой для работы. Однако я не смог найти рабочий пример, который делает то, что я хочу. Ближайшим примером является, возможно, here. Но когда я запускаю код, указанный в этом сообщении, он не дает последний измененный атрибут.

Я использую частично подход, заданный в 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)); 

ответ

0

При загрузке файла с помощью URLConnection, заголовки HTTP скрыты от Тика.

Все, что Тика можно прочитать здесь то же самое, чем если бы вы сохранили файл и открыл поток на нем

Это означает, что дата создания и последнего изменения будут те, которые используются при сохранении файла (то же самое что вы можете увидеть с помощью браузера вашей ОС [Windows explorer, nautilus ...]).

Если вам нужно прочитать HTTP заголовки на этом файле и только то, что, не используйте Тика, но либо непосредственно HTTPUrlConnection или любой другой HTTP-клиент, как (https://hc.apache.org/httpcomponents-client-4.5.x/) или методы, предложенные в this other question.

+0

У меня был последний ответ, связанный в моем оригинальном посте. Я хочу использовать первый пример, который дал автор этого вопроса, но его пример не дал атрибута Last Modified, когда я его запускал. Заголовки HTTP, похоже, не возвращают правильную информацию о создании файла, поэтому я пытаюсь использовать Tika. – jshapy8

+0

Я хочу получить метаданные файла, как указано в первом примере ответа. – jshapy8

+0

Но, как я уже сказал, Тика не получит доступ к информации заголовка HTTP, которую вы хотите прочитать. Он будет извлекать метаданные из самого файла. И поскольку idx-файл не обрабатывается Tika, он не может прочитать информацию внутри (и более простой файл txt, поэтому он не содержит метаданные, например doc или pdf). – YMomb