Not able to create file in ftp serevr(vsftpd)
Hi,
I have set up up vsftpd server and trying to write a file into ftp server using java ftp client code. But I see some error while writing the file FtpBean: Send command "STOR testfile.out" line respone=553 Could not create file. FtpBean: Released by thread. failed to read/write into ftp serverftp.FtpException: 553 Could not create file. ftp.FtpException: 553 Could not create file. at ftp.FtpBean.getRespond(FtpBean.java:1395) at ftp.FtpBean.ftpCommand(FtpBean.java:1447) at ftp.FtpBean.getDataSocket(FtpBean.java:1568) at ftp.FtpBean.putFile(FtpBean.java:1527) at ftp.FtpBean.putBinaryFile(FtpBean.java:833) at ftp.FtpBean.putBinaryFile(FtpBean.java:812) at FtpExample.main(FtpExample.java:148) I saw the error code 553 in document which says illegal file name. I am able to retrieve the file and put file using ftp, but not through programming API. Please let me know what could be issue. |
Can you post your source here?
|
import java.io.File;
import java.io.IOException; import java.util.Date; import ftp.*; /** * This is a example of using FtpBean. * It connects to a ftp server. Go to a directory. * Then list its content with help of the FtpListResult class. * Finally, it gets a binary file. In the downloading * progress, it tells how many bytes are being downloaded. * * Note that this class implements the FtpObserver interface, which * make this class have the ability to monitor the downloading or * uploading progress. If you don't need to monitor it, then you * don't need to implement this interface. * * For using more function of this FtpBean, please see the documentation. */ class FtpExample implements FtpObserver { static FtpBean ftp; long num_of_bytes = 0; public FtpExample() { // Create a new FtpBean object. ftp = new FtpBean(); } // Connect to a ftp server. public void connect() { try { ftp.ftpConnect("localhost", "vijay", "hello"); ftp.setSocketTimeout(1000); } catch(Exception e) { System.out.println(e); } } // Close connection public void close() { try { ftp.close(); } catch(Exception e) { System.out.println(e); } } // Go to directory pub and list its content. public void listDirectory() { FtpListResult ftplrs = null; try { // Go to directory 'pub/redhat/redhat-6.2/i386/RedHat/RPMS'. ftp.setDirectory("_cms/"); // Get its directory content. ftplrs = ftp.getDirectoryContent(); } catch(Exception e) { System.out.println(e); } // Print out the type and file name of each row. while(ftplrs.next()) { int type = ftplrs.getType(); if(type == FtpListResult.DIRECTORY) System.out.print("DIR\t"); else if(type == FtpListResult.FILE) System.out.print("FILE\t"); else if(type == FtpListResult.LINK) System.out.print("LINK\t"); else if(type == FtpListResult.OTHERS) System.out.print("OTHER\t"); System.out.println(ftplrs.getName()); } } // Get the file. public void getFile() { try { // Get the binary file 'kernel-2.2.14-5.0.i386.rpm' and save it to // the name 'local_file_name' in the hard disk. // Passing this class which implements the FtpObserver interface to // monitor this downloading progress. Every time new bytes are read, // the byteRead(int) method of this class is invoked by the bean. ftp.getBinaryFile("build.txt", "local_file_name", this); } catch(Exception e) { System.out.println(e); } } // Implemented for FtpObserver interface. // To monitor download progress. public void byteRead(int bytes) { num_of_bytes += bytes; System.out.println(num_of_bytes + " of bytes read already."); } // Needed to implements by FtpObserver interface. public void byteWrite(int bytes) { } // Main public static void main(String[] args) { FtpExample example = new FtpExample(); example.connect(); example.listDirectory(); //example.getFile(); Date d = new Date(); long t = d.getTime(); System.out.println("test file " + t); File f = new File("/home/vijay"); /*if ((! f.exists())||(! f.isDirectory())) { System.out.println("invalid ftpdir " ); return ; }*/ File cms = new File(f, CM_DIR); if (f.exists()&&(! f.isDirectory())) { System.out.println("invalid cmsdir " ); return ; } cms.mkdir(); try { ftp.putBinaryFile("testfile.out", TEST_DATA); /* byte[] ret = ftp.getBinaryFile(Long.toString(t)); int i = 0; for (i=0;i<TEST_DATA.length; i++) { if (ret[i] != TEST_DATA[i]) { throw new IOException("read error " + i); } }*/ } catch (Exception e) { System.out.println("failed to read/write into ftp server" + e); e.printStackTrace(); return ; } File tmp = new File(cms, Long.toString(t)); if (! tmp.exists()) { System.out.println("failed test file in cms dir " + tmp.getAbsolutePath()); return ; } tmp.delete(); try { ftp.close(); } catch (Exception e) { System.out.println("failed to exit ftp session " + e); } //return ClientValidationResult.SUCCESS; example.getFile(); example.close(); } private static byte[] TEST_DATA = {50, 51, 52, 53, 54, 55, 56, 57, 58, 59}; public static final String CM_DIR = "/_cm/"; } |
All times are GMT -5. The time now is 05:32 AM. |