2014-10-17 3 views
1

시간이 많이 걸리는 FTP를 통해 서버에서 클라이언트로 거대한 파일을 전송해야하는 문제가 있습니다. 우리는 현재 apache.commons.net 라이브러리에서 FTPClient를 사용할 수 있습니다.아파치 FTP 클라이언트는 전송 중에 파일을 압축합니까?

그래서 질문입니다 - FTPClient는 전송 중에 파일을 압축합니까? 아니면 전송 방법이 있습니까?

모든 포인터 또는 관련 정보가 큰 도움이 될 것입니다!

답변

2

예, 이것을 모드 Z (또는 압축 전송 모드)라고합니다.

FTPClient ftpClient = new FTPClient(); 
ftpClient.connect(server.getServer()); 
ftpClient.login(server.getUsername(), server.getPassword()); 
ftpClient.setFileType(FTP.BINARY_FILE_TYPE); 
ftpClient.setFileTransferMode(FTP.COMPRESSED_TRANSFER_MODE); 

분명히 서버 측에서 파일을 압축 한 다음 표준 FTP를 통해 파일을 보낼 수도 있습니다 (결국 동일해야 함).

+0

고맙습니다! 한 가지 추가 질문 - 압축 비율이란 무엇입니까? 얼마나 빨랐 을까요? 이를 위해 어떤 링크를 제공 할 수 있습니까? – EngineeredBrain

+0

FTPClient를 사용하는 압축률에 대해 잘 모르겠습니다. 파일 압축 자체에 대해 더 많은 제어권을 원한다면 서버 측에서 압축해야한다고 생각합니다 (https://code.google.com/p/lz4/와 같은 많은 Java 라이브러리가 있습니다)) 그리고 FTP를 통해 업로드하십시오. –

+1

@AnwarShaikh : 알고리즘은 deflate이며 gzip에서도 사용되며 HTTP의 콘텐츠 인코딩에도 사용됩니다. 압축 비율은 물론 내용에 따라 다르지만 텍스트 (예 : 목록)의 경우 2 : 1 .. 5 : 1 일 수 있으며 PNG 이미지와 같이 이미 압축 된 데이터의 경우는 거의 없습니다. –

관련 문제