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

Amu*_*Amu 3 java ftp jenkins-plugins

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

etx*_*lpo 6

不确定如何使用Jenkins,但如果你想监视FTP位置的变化(即在目录中添加/删除/修改文件时接收通知)使用普通的java,那么以下库可以帮助你进行实际的轮询/ notification mechanism: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();
    }
}
Run Code Online (Sandbox Code Playgroud)

RDP4J 用户指南:

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