我使用Apache MINA设置了FTPS服务器 . 通过覆盖默认的ftplet,我可以检测到客户端何时开始将新文件上传到服务器 . 我想将传输重定向到S3数据库,而不是将文件写入磁盘 . MINA项目中的ftplet文档说明(https://mina.apache.org/ftpserver-project/ftplet.html)
我们可以从请求中获取数据输入流
但是我找不到如何从两个参数中获取该流 .
此外,在FAQ中有一个代码示例,通过覆盖onDownloadStart方法(https://mina.apache.org/ftpserver-project/faq.html#how-can-i-send-binary-data-stored-in-a-database-when-the-ftp-server-gets-the-retr-command)从数据库中获取下载:
public FtpletEnum onDownloadStart(FtpSession session, FtpRequest request,
FtpReplyOutput response) throws FtpException, IOException {
....
但是,我使用的是最新的MINA版本(mina-core 2.0.16,ftplet-api 1.1.1,ftpserver-core 1.1.1),该方法不包含第三个参数 . 这是在最新版本中改变了吗?
1 回答
您所指的
onDownloadStart
示例似乎已过时 . 首先,使用的FtpletEnum
类是ftplet-api
的早期版本的一部分 . 较新版本不再拥有它 . 至少我无法找到它 .尽管如此,仍然可以从客户端获取上传的文件 . 当覆盖
DefaultFtplet
的onUploadStart
方法时,您可以从会话中请求DataConnection
.请记住,如果
onUploadStart
方法返回SKIP,您可能还必须通过响应代码通知客户端 . 来自Ftplet docs