使用 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 通道适配器以作为文档存储在某些集合中。