Jakarta Commons
commons-net : FTP Solaris장비 접속시 korea locale date parsing 문제.
Solaris장비에서의 기본 파일 리스팅 포맷..
drwxr-x--- 12 premium nethru 512 2007년 4월 3일 wle
drwxr-x--- 13 premium nethru 512 2005년 12월 22일 WLE
drwxr-x--- 15 premium nethru 512 6월 12일 19:01 WLP2.7
drwxr-xr-x 14 premium nethru 512 11월 15일 11:34 WLP3.0
-rw-r--r-- 1 premium nethru 1007389 10월 18일 17:01 wlp.jar
2007년 4월 3일 처리시 문제가 됨.
정규표현식에 버그가 있더라.. 아래와 같은형태로 수정했다.
private static final String REGEX =
"([bcdlfmpSs-])"
+"(((r|-)(w|-)([xsStTL-]))((r|-)(w|-)([xsStTL-]))((r|-)(w|-)([xsStTL-])))\\+?\\s+"
+ "(\\d+)\\s+" //num
+ "(\\S+)\\s+" // uid
+ "(?:(\\S+)\\s+)?" // gid
+ "(\\d+)\\s+" // filesize
/* numeric or standard format date */
+ "((?:\\d+[-/]\\d+[-/]\\d+)|(?:\\S+\\s+\\S+))\\s+" // dateformat
/*
year (for non-recent standard format) or time (for numeric or recent standard format)
*/
// TODO (\\d+(?::\\d+)?)\\s+ -> (\\d+(?::\\d+)|\\d+(?:\\S+)?)\\s+
+ "(\\d+(?::\\d+)|\\d+(?:\\S+)?)\\s+" //
+ "(\\S*)(\\s*.*)";
FTP / HTTP 이어받기
REST 명령어를 통해 어떤 파일에 대해 서버로 부터 원하는 위치로부터 다운로드를 요청할 수 있습니다.
서버는 그 위치부터 전송을 시작하게 됩니다.
이어서 다운로드는 99% 지원이 되며, 이어서 업로드는 서버에 따라 지원이 될수도 안될수도 있습니다.
REST 0이나 REST 1 명령어를 통해 이어전송의 지원여부를 확인할수 있으며,
예를 들어
REST 32768
RETR test.txt
와 같이 명령어를 보내면 서버는 test.txt 파일을 32768바이트부터 전송을 합니다.
업로드는 RETR대신 STOR 명령어를 사용하시고, 파일을 보낼때 부터 파일스트림을 원하는 위치부터 오픈&리드 하셔야 합니다.
즉, 업로드시엔 클라이언트측에서 원하는 위치부터 송신을 해야합니다.
HTTP =>
Commons FTP Sockettimeout설정 안먹는 버그
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4729386
sconnection Test할때만 timeout 이 필요했는데..
Socket.connect(Inetaddress addr, int timeout) 메소드를 이용하였다.
History
Last edited on 03/24/2008 13:03 by dsdgun
Comments (0)