此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.1! |
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.1! |
从 Spring Integration 3.0 开始,在对象上提供了新的抽象。
该模板提供了发送、检索(作为)、删除和重命名文件的方法。
此外,还提供了一种方法,允许调用方在会话上执行多个操作。
在所有情况下,模板都会负责可靠地关闭会话。
有关更多信息,请参见 RemoteFileTemplate
的 Javadoc。
FTP 有一个子类:.FtpSession
InputStream
execute
FtpRemoteFileTemplate
版本 4.1 添加了其他方法,包括 ,它提供对基础的访问,从而允许您访问低级别 API。getClientInstance()
FTPClient
并非所有 FTP 服务器都能正确实现该命令。
有些会为不存在的路径返回积极的结果。
当路径是文件并且它存在时,该命令可靠地返回名称。
但是,这不支持检查空目录是否存在,因为当路径是目录时,总是返回空列表。
由于模板不知道路径是否代表目录,因此当路径似乎不存在时(使用 时),它必须执行其他检查。
这会增加开销,需要向服务器发出多个请求。
从版本 4.1.9 开始,提供具有以下选项的属性:STAT <path>
NLST
NLST
NLST
FtpRemoteFileTemplate
FtpRemoteFileTemplate.ExistsMode
-
STAT
:执行FTP命令()检查路径是否存在。 这是默认设置,要求 FTP 服务器正确支持该命令(带有路径)。STAT
FTPClient.getStatus(path)
STAT
-
NLST
:执行 FTP 命令 — 。 如果要测试的文件完整路径,请使用此选项。 它不适用于空目录。NLST
FTPClient.listName(path)
-
NLST_AND_DIRS
:首先执行该命令,如果未返回任何文件,则回退到使用 临时切换工作目录的技术。 有关更多信息,请参见FtpSession.exists()。
NLST
FTPClient.changeWorkingDirectory(path)
由于我们知道情况总是只查找文件(而不是目录),因此我们安全地对 and 组件使用模式。FileExistsMode.FAIL
NLST
FtpMessageHandler
FtpOutboundGateway
对于任何其他情况,可以扩展以在重写方法中实现自定义逻辑。FtpRemoteFileTemplate
exist()
从版本 5.0 开始,新方法可用。
此方法允许在相同的线程边界 .
当您需要将作为一个工作单元执行多个高级操作时,这很有用。
例如,将其与命令实现一起使用,在命令实现中,我们对所提供目录中的每个文件执行操作,并对其子目录递归执行操作。
有关更多信息,请参见 Javadoc。RemoteFileOperations.invoke(OperationsCallback<F, T> action)
RemoteFileOperations
Session
RemoteFileTemplate
AbstractRemoteFileOutboundGateway
mput
put