Java를 사용하여 HTTP 서버에서 파일의 마지막 수정 시간과 생성 시간을 가져오고 싶습니다. 파일은 특정 URL에 있습니다. 메서드 는 HTTP 헤더에서 Last-Modified 속성을 사용 URLConnection
하고 HttpURLConnection
산출하지만 이것은 실제 파일 생성 날짜가 아닙니다.
나는 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가 읽을 수있는 모든 내용은 파일을 저장하고 스트림을 연 경우와 동일합니다.
즉, 파일을 저장할 때 생성 날짜와 마지막 수정 날짜가 사용됩니다 (OS 브라우저 [Windows 탐색기, 노틸러스 ...]를 사용하여 볼 수있는 것과 동일).
해당 파일에서 HTTP 헤더 만 읽어야하는 경우 Tika를 사용하지 말고 HTTPUrlConnection
( https://hc.apache.org/httpcomponents-client-4.5.x/ ) 또는 이 다른 질문 에서 제안 된 방법 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다