1
원격 FTP 호스트에 파일을 저장하려고합니다.FTP URL을 사용하여 FileSystemManager.resolveFile을 호출 할 때 "/"작업 디렉토리로 변경할 수 없습니다.
ftp://[username]:{[hash_password]}@[hostname]:21/users/afolder/anotherfolder/afile.pdf
하지만 다음과 같은 예외가 받고 있어요 :
String ftpUri =
"ftp://" + target.get(server).get("Username") + ":{" + target.get(server).get("Psswd") + "}@";
if (StringUtils.isBlank(target.get(server).get("Port"))) {
ftpUri += target.get(server).get("Hostname") + target.get(server).get("RemotePath");
} else {
ftpUri += target.get(server).get("Hostname") + ":" + target.get(server).get("Port") + target.get(server)
.get("RemotePath");
}
System.out.println("ftpUri = " + ftpUri);
FileSystemManager fsManager;
try {
fsManager = VFS.getManager();
} catch (FileSystemException e) {
throw new RuntimeException("Failed to get fsManager from VFS", e);
}
FileSystemOptions opts = new FileSystemOptions();
FtpFileSystemConfigBuilder.getInstance().setPassiveMode(opts, true);
FileObject remoteFile = fsManager.resolveFile(ftpUri, opts); // <- it breaks
내 ftUri
은 다음과 같습니다
Caused by: org.apache.commons.vfs2.FileSystemException: Could not change to work directory "/".
at org.apache.commons.vfs2.provider.ftp.FtpClientFactory.createConnection(FtpClientFactory.java:130)
... 19 more
은이 작업 디렉토리 경로를 설정할 수를이 난 보통 어떻게입니다 ?
제가 생각하기에 FTP 라이브러리는 허가가없는 root
디렉토리에서 작업하려고합니다. 그러나 URI를 통해 다른 경로를 알려주고 있지만, 어떻게 든 라이브러리는 root
디렉토리에서 작업 할 것을 주장합니다.
참조하는이 방법을 찾을 수 없습니다. https://commons.apache.org/proper/commons-vfs/apidocs/org/apache/commons/vfs2/FileSystemManager.html –
업데이트 된 답변보기 –