【发布时间】:2025-12-07 16:00:02
【问题描述】:
我想从数据库中发送一些数据。目前我们的 SFTP 是这样设置的(使用 apache commons vsf2 库)。
try(StandardFileSystemManager manager = new StandardFileSystemManager())
File file = generateFileFromDatabase();
manager.init();
FileSystemOptions opts = new FileSystemOptions();
SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(
opts, "no");
SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, true);
SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 10000);
// Create localfile object
FileObject localFile = manager.resolveFile(file.getAbsolutePath());
// Create remote file object
FileObject remoteFile = manager.resolveFile(sftpUri, opts);
// Copy local file to sftp server
remoteFile.copyFrom(localFile, Selectors.SELECT_SELF);
} catch (Exception ex) {
ex.printStackTrace();
}
但是,generateFileFromDatabase() 通过调用 new 关键字来工作,如
return new File();
我不想要这个,因为每次调用 generateFileFromDatabase() 时都会在文件系统中保存一个新文件。有没有办法在不保存到文件目录的情况下生成File()?
【问题讨论】:
标签: java sftp apache-commons-vfs