2
我已经在一个amazon EC2实例中设置了ftp服务器,并且可以使用apache ftp库从本地计算机的服务器下载文件。现在我试图在另一个Amazon EC2实例中运行相同的ftpclient程序,但它不起作用。 下面是示例代码从ftpsever下载文件:如何使用java apache将文件从一个Amazon EC2实例下载到另一个EC2实例FTPClient
FTPClient ftp = new FTPClient();
String loc = "/home/ubuntu/test/";
String remote = "/home/ftp";
try
{
ftp.connect("ec2-xx-xx-xx-xxx.compute-1.amazonaws.com", 21);
ftp.login("username", "xxx");
System.out.println("connected..");
ftp.setFileType(FTP.BINARY_FILE_TYPE);
OutputStream output;
output = new FileOutputStream(loc+"file_name");
ftp.retrieveFile(remote+"/filen_name", output);
output.close();
ftp.disconnect();
}
catch(Exception ex)
{
ex.printStackTrace();
}
下面的代码可以列出远程目录中的所有文件名:
for(FTPFile f: ftp.listFiles(remote))
{
System.out.println(f.getName());
}
两者的代码做工精细在我的本地机器,但不在亚马逊机器上工作。它连接但不能列出文件名或下载文件。它不显示任何错误消息。
感谢advance--
你尝试切换到[被动](http://commons.apache.org/net/api-3.1/org/apache/commons/net/ftp/FTPClient .html#PASSIVE_LOCAL_DATA_CONNECTION_MODE)模式? – Edenbauer 2012-08-10 12:27:55
是的,我尝试过,但它不工作。 – zawoad 2012-08-13 02:42:18