我们有一个ftp系统设置来监控/下载不受我们控制的远程ftp服务器.该脚本连接到远程ftp,并获取服务器上文件的文件名,然后检查它是否已经下载了.如果尚未下载,我们下载该文件并将其添加到列表中.
我们最近遇到了一个问题,远程ftp端的某个人将以大量单个文件(> 1GB)复制,然后脚本将被唤醒,看到一个新文件并开始下载正在复制的文件.
检查这个的最佳方法是什么?我想抓住文件大小等待几秒再次检查文件大小,看看它是否有增加,如果没有,那么我们下载它.但是,由于时间紧迫,我们不能等待几秒钟的每个文件集,看看它的文件大小是否增加.
什么是最好的方法,目前一切都是通过pythons ftplib完成的,除了使用上述方法,我们怎么做.
再次让我重申一下,我们对远程ftp站点有0控制权.
谢谢.
UPDATE1:
我在想如果我试图重命名它...因为我们对ftp有完全权限,如果文件上传正在进行中,重命名命令会失败吗?
我们这里没有任何实际选择......我们呢?
更新2:这里有一些有趣的东西我们测试的一些ftps似乎在传输开始后自动分配空间.
例如,如果我将200mb文件传输到ftp服务器.如果我连接到ftp服务器并在上传发生时执行大小,则传输处于活动状态.它显示了200mb的大小.即使文件只有10%完成.
权限似乎也随机设置IIS附带的FTP服务器在文件完成复制后设置权限.虽然其他一些旧的ftp服务器在您发送文件后立即设置它.
:'(
"该死的鱼雷!全速前进!"
只需下载该文件.如果它是一个大文件,则在下载完成后等待,只要对您的方案合理,并从停止的点继续下载.重复,直到没有更多东西要下载.