我正在尝试轮询 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 commonsFTPClient
列出了 FTP 位置中的文件 - 描述
MyListener
可以监听哪些事件 - 如何配置
DirectoryPoller
关于java - 如何轮询 FTP 位置以触发其中的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16100292/