Duplicate remote file over FTP protocol in Java (cp -p to Linux using sendCommand)

后端 未结 1 1181
迷失自我
迷失自我 2021-01-15 22:34

I m using Apache FTPClient. I was a do a copy of file in a folder just like cp -p, but from Java. How can I do that using \'sendCommand\' method or

相关标签:
1条回答
  • 2021-01-15 22:56

    There's no standard way to duplicate a remote file over FTP protocol. Some FTP servers support proprietary or non-standard extensions for this though.


    So if your are lucky that your server is ProFTPD with mod_copy module, you can use FTP.sendCommand to issue these two commands:

    CPFR sourcepath
    CPTO targetpath
    

    The second possibility is that your server allows you to execute arbitrary shell commands. This is not common either. If your server supports this you can use SITE EXEC command:

    SITE EXEC cp -p sourcepath targetpath
    

    Another workaround is to open a second connection to the FTP server and make the server upload the file to itself by piping a passive mode data connection to an active mode data connection. Implementation of this solution in PHP is shown in FTP copy a file to another place in same FTP.


    If neither of this works, all you can do is to download the file to a local temporary location and re-upload it back to the target location.

    See also:

    • FTP copy a file to another place in same FTP.
    • How to copy a file on the ftp server to a directory on the same server in java?
    0 讨论(0)
提交回复
热议问题