Java文件传输API

Tim*_*ltz 9 java file-io

我需要将文件传输到我的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或协议并实例化正确的文件处理程序.

Yis*_*hai 6

Apache commons VFS说到了这个问题,虽然快速检查没有表明它会做SCP或SMTP.Commons NET做SMTP,但我不知道你可以开箱即用.对于SCP,这里有一些可能性.

底线似乎是检查VFS实现并查看它是否适合您,也许您可​​以针对不同的协议进行扩展.如果它不合适,关于您的接口,您可能希望所有远程文件引用都是字符串而不是File对象,特别是表示指向远程位置的URI并告诉您要使用的协议的字符串.