java - 如何轮询 FTP 位置以触发其中的更改?

标签 java ftp jenkins-plugins

我正在尝试轮询 ftp 位置。 我正在使用 Jenkins 来持续集成项目。因此,如果有人可以建议我使用 Jenkins 中的插件或任何其他方法来监视 FTP 位置的变化,那将会很有帮助。 我需要监视 FTP 位置的变化,当发现​​变化时,我必须构建另一个作业。

最佳答案

不确定如何使用 Jenkins 执行此操作,但如果您想使用纯 Java 监视 FTP 位置的更改(即在目录中添加/删除/修改文件时接收通知),那么以下库可以帮助您实际的轮询/通知机制:https://github.com/drapostolos/rdp4j (Java 远程目录轮询器)。

API的简单使用示例:

package example

import java.util.concurrent.TimeUnit;
import com.github.drapostolos.rdp4j.DirectoryPoller;
import com.github.drapostolos.rdp4j.spi.PolledDirectory;

public class FtpExample {

    public static void main(String[] args) throws Exception {
        String host = "ftp.mozilla.org";
        String workingDirectory = "pub/addons";
        String username = "anonymous";
        String password = "anonymous";
        PolledDirectory polledDirectory = new FtpDirectory(host, workingDirectory, username, password);

        DirectoryPoller dp = DirectoryPoller.newBuilder()
        .addPolledDirectory(polledDirectory)
        .addListener(new MyListener())
        .setPollingInterval(10, TimeUnit.MINUTES)
        .start();

        TimeUnit.HOURS.sleep(2);

        dp.stop();
    }
}

RDP4J User Guide :

  • 提供了一个 FtpDirectory 类的示例,它使用 appache commons FTPClient 列出了 FTP 位置中的文件
  • 描述 MyListener 可以监听哪些事件
  • 如何配置DirectoryPoller

关于java - 如何轮询 FTP 位置以触发其中的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16100292/

相关文章:

jenkins - 将 'build with parameters' 从管道中的 scm 传递到 Jenkinsfile

java - 如何在 Java 中相对于单个线程同步一组多个线程

java - 引用索引数组

java - 在提供 PDF 文件的 servlet 中设置浏览器标题

Java JTextArea 动态列和行编号

.net - 从 VB.NET 中的 FTP 文件夹下载所有文件和子目录

python - 如何在Python ftplib中检查FTP登录是否成功?

java - 如何在 jenkins 插件中包含针对 JDK 1.8 的依赖项?

c# - 使用 WinSCP .NET 程序集通过 FTPS(安全)发送文件

java - 如何在 Jenkins 上运行 TestNG 测试