我正在尝试实现一个能够管理网络连接问题的 ftpClient 接口。为此,我正在使用 ftp4j 库。
我可以成功上传文件,但是在文件上传过程中出现连接失败时我遇到了一些问题。我希望能够在连接问题终止我之前的上传尝试后重新上传(不是追加,只是重新开始)文件。
情况是,如果我尝试在上一次不成功的尝试后几秒钟甚至几分钟重新尝试上传文件,我会得到:
it.sauronsoftware.ftp4j.FTPException [code=550, message= Access is denied. ]
at it.sauronsoftware.ftp4j.FTPClient.upload(FTPClient.java:2794)
at it.sauronsoftware.ftp4j.FTPClient.upload(FTPClient.java:2586)
如果我等待一段时间然后重试,我将能够将文件上传到 FTP 服务器。
是否可以为我的 ftpClient 设置一些参数:
...
FTPClient client = new FTPClient();
try {
client.setType(FTPClient.TYPE_BINARY);
client.connect(ipAddress, port);
client.login(userName, password);
System.out.println("Connected to FTP Server!");
...
}
...
if(ftpClient.isResumeSupported()) {
System.err.println("FTP Server supports resume. Trying to upload file");
ftpClient.upload(localFile, writtenBytes, new Ftp4jListener());
} else {
System.err.println("FTP Server does NOT supports resume. Trying to upload file");
ftpClient.upload(localFile, new Ftp4jListener());
}
...
为了能够克服这个“访问被拒绝”的问题?任何想法是什么导致了这种异常?也许是服务器参数?