使用 Camel 重命名远程文件时出现异常 FTP

Exception renaming remote file using Camel FTP

我有一个 FTP 的轮询路由,就像这样

from("sftp://sftpUsername@ftpServer/path/to/folder?password=sftpPassword    
 &delay=60000&stepwise=false&move=/home/username/processed/$simple{date:now:yyyy}
 /$simple{date:now:MM}/$simple{date:now:dd}/${file:name}&binary=true")
.to("file:///tmp/")

轮询按预期进行。我能够将处理后的文件移动到 /path/to/folder 内的子文件夹中。但是,当我尝试将其移动到其他文件夹位置时。我遇到了一个例外。不幸的是,例外情况没有详细说明。

DEBUG org.apache.camel.component.file.GenericFileOnCompletion - Done processing file: RemoteFile[/path/to/folder/fileName.zip] using exchange: Exchange[fileName.zip] DEBUG org.apache.camel.component.file.remote.FtpOperations - Deleting file: /home/username/processed/2017/07/11/fileName.zip TRACE org.apache.camel.component.file.remote.FtpOperations - Client deleteFile: /home/username/processed/2017/07/11/fileName.zip TRACE org.apache.camel.component.file.remote.FtpOperations - buildDirectory(/home/username/processed/2017/07/11) TRACE org.apache.camel.component.file.remote.FtpOperations - changeCurrentDirectory(/home/username) TRACE org.apache.camel.component.file.remote.FtpOperations - Changing directory: /home/username DEBUG org.apache.camel.component.file.strategy.GenericFileRenameProcessStrategy - Renaming file: RemoteFile[/path/to/folder/fileName.zip] to: RemoteFile[/home/username/processed/2017/07/11/fileName.zip] DEBUG org.apache.camel.component.file.remote.FtpOperations - Renaming file: /path/to/folder/fileName.zip to: /home/username/processed/2017/07/11/fileName.zip WARN org.apache.camel.component.file.GenericFileOnCompletion - Error during commit. Exchange[fileName.zip]. Caused by: [org.apache.camel.component.file.GenericFileOperationFailedException - Cannot rename file: RemoteFile[/path/to/folder/fileName.zip] to: RemoteFile[//home/username/processed/2017/07/11/fileName.zip]] org.apache.camel.component.file.GenericFileOperationFailedException: Cannot rename file: RemoteFile[/path/to/folder/fileName.zip] to: RemoteFile[/home/username/processed/2017/07/11/fileName.zip] at org.apache.camel.component.file.strategy.GenericFileProcessStrategySupport.renameFile(GenericFileProcessStrategySupport.java:115)

我正在使用 Camel-FTP 2.13.4,它使用 commons.net-3.3.jar。我可以看到它正在尝试执行 RNFR 和 RNTO 命令。我无法从命令行 FTP 协议使用这些命令。

如果我没理解错的话2.13.4版本可以使用绝对路径。如果这种理解不正确,请告诉我。

在此先感谢您在正确方向上提供的任何帮助。

这不起作用,因为分区不同,我们不能在分区之间移动文件。选项是将文件移动到同一分区中的某个位置。或者您可以手动 FTP 将其返回到不同分区上的某个位置。