使用 spring 引导将 FTP 服务器中检索到的文件上传到 mongodb 集合
Uploading retrieved files in a FTP server to mongodb collection using spring boot
我已经实现了一个 springboot 应用程序来从 FTP 服务器检索文件并将它们下载到我的本地目录中。
以下是我用来执行此操作的代码。
@Configuration
public class FTPConfiguration {
@ServiceActivator(inputChannel = "ftpMGET")
@Bean
public FtpOutboundGateway getFiles() {
FtpOutboundGateway gateway = new FtpOutboundGateway(sf(), "mget", "payload");
gateway.setAutoCreateDirectory(true);
gateway.setLocalDirectory(new File("./downloads/"));
gateway.setFileExistsMode(FileExistsMode.REPLACE_IF_MODIFIED);
gateway.setFilter(new AcceptOnceFileListFilter<>());
gateway.setOutputChannelName("fileResults");
return gateway;
}
@Bean
public MessageChannel fileResults() {
DirectChannel channel = new DirectChannel();
channel.addInterceptor(tap());
return channel;
}
@Bean
public WireTap tap() {
return new WireTap("logging");
}
@ServiceActivator(inputChannel = "logging")
@Bean
public LoggingHandler logger() {
LoggingHandler logger = new LoggingHandler(LoggingHandler.Level.INFO);
logger.setLogExpressionString("'Files:' + payload");
return logger;
}
@Bean
public DefaultFtpSessionFactory sf() {
DefaultFtpSessionFactory sf = new DefaultFtpSessionFactory();
sf.setHost("localhost");
sf.setPort(2121);
sf.setUsername("anonymous");
sf.setPassword("");
return sf;
}
@MessagingGateway(defaultRequestChannel = "ftpMGET", defaultReplyChannel = "fileResults")
public interface GateFile {
List<File> mget(String directory);
}
}
现在,当我 运行 这个程序时,我需要自动将这些文件上传到我的 MongoDB。
任何人都可以帮助我或指导我应该遵循的步骤吗?
请查看 MongoDB 对 Spring 集成的支持:https://docs.spring.io/spring-integration/docs/current/reference/html/mongodb.html#mongodb-outbound-channel-adapter
您可能需要考虑如何从该 MGET 结果的文件中制作一些 POJO 并将其发送到该 MongoDB 通道适配器以作为文档存储在某些集合中。
我已经实现了一个 springboot 应用程序来从 FTP 服务器检索文件并将它们下载到我的本地目录中。
以下是我用来执行此操作的代码。
@Configuration
public class FTPConfiguration {
@ServiceActivator(inputChannel = "ftpMGET")
@Bean
public FtpOutboundGateway getFiles() {
FtpOutboundGateway gateway = new FtpOutboundGateway(sf(), "mget", "payload");
gateway.setAutoCreateDirectory(true);
gateway.setLocalDirectory(new File("./downloads/"));
gateway.setFileExistsMode(FileExistsMode.REPLACE_IF_MODIFIED);
gateway.setFilter(new AcceptOnceFileListFilter<>());
gateway.setOutputChannelName("fileResults");
return gateway;
}
@Bean
public MessageChannel fileResults() {
DirectChannel channel = new DirectChannel();
channel.addInterceptor(tap());
return channel;
}
@Bean
public WireTap tap() {
return new WireTap("logging");
}
@ServiceActivator(inputChannel = "logging")
@Bean
public LoggingHandler logger() {
LoggingHandler logger = new LoggingHandler(LoggingHandler.Level.INFO);
logger.setLogExpressionString("'Files:' + payload");
return logger;
}
@Bean
public DefaultFtpSessionFactory sf() {
DefaultFtpSessionFactory sf = new DefaultFtpSessionFactory();
sf.setHost("localhost");
sf.setPort(2121);
sf.setUsername("anonymous");
sf.setPassword("");
return sf;
}
@MessagingGateway(defaultRequestChannel = "ftpMGET", defaultReplyChannel = "fileResults")
public interface GateFile {
List<File> mget(String directory);
}
}
现在,当我 运行 这个程序时,我需要自动将这些文件上传到我的 MongoDB。 任何人都可以帮助我或指导我应该遵循的步骤吗?
请查看 MongoDB 对 Spring 集成的支持:https://docs.spring.io/spring-integration/docs/current/reference/html/mongodb.html#mongodb-outbound-channel-adapter
您可能需要考虑如何从该 MGET 结果的文件中制作一些 POJO 并将其发送到该 MongoDB 通道适配器以作为文档存储在某些集合中。