【问题标题】:Apache VFS SFTP moveTo command failsApache VFS SFTP moveTo 命令失败
【发布时间】:2014-03-16 07:41:25
【问题描述】:

我正在使用 Apache vfs sftp 将文件复制到远程 linux 机器,然后重命名它。 复制工作正常,但是当我尝试重命名文件时,它失败了。 我正在使用 vfs 2.0 和 jsch 0.1.50

Source(remoteFileTmp)       : /tmp/abc.txt
Destination(remoteFileDest) : /home/myName/work/abc.txt

我使用的命令如下:

remoteFileTmp.moveTo(remoteFileDest);

我得到的异常如下:

Exception in thread "main" java.lang.RuntimeException: org.apache.commons.vfs2.FileSystemException: Could not rename "sftp://hostname/tmp/abc.txt" to "sftp://hostname/home/myName/work/abc.txt".
    at com.transfer.SFTPTransfer.uploadRename(SFTPTransfer.java:85)
    at com.transfer.MainClass.main(MainClass.java:23)
Caused by: org.apache.commons.vfs2.FileSystemException: Could not rename "sftp://hostname/tmp/abc.txt" to "sftp://hostname/tmp/abc.txt" to "sftp://hostname/home/myName/work/abc.txt".
    at org.apache.commons.vfs2.provider.AbstractFileObject.moveTo(AbstractFileObject.java:1116)
    at com.transfer.SFTPTransfer.uploadRename(SFTPTransfer.java:59)
    ... 1 more
Caused by: 4: Failure
    at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2833)
    at com.jcraft.jsch.ChannelSftp.rename(ChannelSftp.java:1910)
    at org.apache.commons.vfs2.provider.sftp.SftpFileObject.doRename(SftpFileObject.java:289)
    at org.apache.commons.vfs2.provider.AbstractFileObject.moveTo(AbstractFileObject.java:1102)
    ... 2 more

目录 /home/myName/work 存在。

注意:当我尝试在同一文件夹中移动(重命名)文件时,它工作正常。 即对于以下输入重命名是成功的。

source = /tmp/abc.txt
destination = /tmp/abc.txt_renamed

那么是不是只支持在同一个目录下重命名呢?

【问题讨论】:

  • 更正第4行粘贴的错误。它是-----由:org.apache.commons.vfs2.FileSystemException:无法将“sftp://hostname/tmp/abc.txt”重命名为“sftp://hostname/home/myName/work /abc.txt"。
  • 您是否尝试将其重命名为同一文件夹的任何其他子目录或同一文件系统中的任何其他文件夹?
  • 是的,当我使用同一文件夹的子目录时,重命名有效。我没有尝试任何其他方法,因为我们决定使用同一文件夹中的子目录。

标签: java apache sftp jsch vfs


【解决方案1】:

这是由于通过 SFTP 执行 moveTo 时 Apache VFS 库中的一个未解决问题引起的:-(

https://issues.apache.org/jira/browse/VFS-590

还有这个

https://issues.apache.org/jira/browse/VFS-589

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 2017-05-24
    • 2023-01-17
    • 1970-01-01
    • 2017-11-19
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    相关资源
    最近更新 更多