我需要将文件传输到我的Web服务器进行处理,如果可能的话我想以通用的方式进行处理.
我需要能够至少从以下协议传输文件(最终要遵循更多):
HTTP
FTP
SCP
我真的希望能够将文件发送到SMTP
所以我的问题是,是否有可用的工具包呢?如果是这样,它必须是开源的,因为这是开源项目的一部分.
如果没有已经执行此操作的工具包,那么构建将处理大多数文件传输的接口的最佳方法是什么?
我想过这样的事情:
public interface FileTransfer {
public void connect(URL url, String userid, String password);
public void disconnect();
public void getFile(String sourceFile, File destFile);
public void putFile(File sourceFile, File destFile);
}
Run Code Online (Sandbox Code Playgroud)
然后是一个工厂,它接受源URL或协议并实例化正确的文件处理程序.
Apache commons VFS说到了这个问题,虽然快速检查没有表明它会做SCP或SMTP.Commons NET做SMTP,但我不知道你可以开箱即用.对于SCP,这里有一些可能性.
底线似乎是检查VFS实现并查看它是否适合您,也许您可以针对不同的协议进行扩展.如果它不合适,关于您的接口,您可能希望所有远程文件引用都是字符串而不是File对象,特别是表示指向远程位置的URI并告诉您要使用的协议的字符串.