我们有一个ftp系统设置程序来监测/下载遥ftp服务器是不是我们的控制之下。脚本连接到的遥ftp,并抓住文件名单服务器上的文件,然后我们检查,看看它的东西已经被下载。如果它还没有被下载了然后我们下载该文件并将它添加到名单。

我们最近碰到的一个问题,在那里别人的远程ftp方面,将复制在一个巨大的单一文件(>1GB)然后脚本会醒来看到一个新的文件和开始下载的文件,该文件是被复制。

什么是最好的方式来检查?我想抓住文件的尺寸等待几秒钟检查文件的尺寸,再次,看看它是否有所增加,如果它还没有然后,我们下载。但是,由于时间的关切,我们不能等了几秒钟对每一个文件集,并看到如果这是文件的大小有所增加。

什么是最好的方式去关于这一点,目前的一切是通过蟒蛇ftplib,我们怎么可以这样做除了使用上述方法。

又一次让我重申这一点,我们必须0控制在远程ftp站点。

谢谢。

更新1:

我想如果我试图重新命名...由于我们有充分的权限ftp,如果在文件上传中取得进展的重命名的命令失败?

我们没有任何真正的选择在这里...我们?

UPDATE2:很好这里的东西有趣的一些ftps我们测试了上似乎自动分配的空间一旦转移开始。

E.g。如果我传送一个200mb文件ftp服务器。虽然传活动,如果我连接到ftp服务器和做一个小时的上正在发生的事情。它显示了200兆流量的大小。虽然该文件是唯一喜欢的10%完成。

权限也似乎是随机设置的FTP服务器的附带IIS组的权限文件后完成的复制。虽然一些其他老年ftp服务器设它尽快发送文件。

:'(

有帮助吗?

解决方案

“该死的鱼雷!全速前进!”

只要下载该文件。如果它是一个大的文件,然后下载之后完成,只要是合理的,您的情况等,并继续从停止处下载。重复,直到没有更多的东西下载。

其他提示

当你说你有过服务器0控制和不能使你的客户后触发文件由S.洛特的建议,你必须处理与不完整的解决方案和风险不完整的文件传输,也许是等待了一会儿,之前和之后的文件大小进行比较。

您可以尝试重新命名如你所说,但你有0的控制,你不能肯定的是,FTP服务器管理员(或他们的继任者)不会改变平台或FTP服务器或限制您的权限。

对不起。

如果你正在处理多个文件,你可以同时得到所有的尺寸列表中,请等待10秒钟,看看哪些是相同的。无论是还是一样应该是安全的下载。

你不可能知道当操作系统复制完成。它可以慢下来,或等待。

对绝对的确定性,你真的需要两个文件。

  • 大量的文件。
  • 和一个小小的触发的文件。

他们可以乱的大量文件,所有他们想要的。但当他们接触的触发的文件,你在下载这两者。


如果你不能扳机,你必须平衡所需要的时间调查与所需要的时间来下载。

这样做。

  1. 得到一个清单。检查的时间戳。

  2. 检查的大小与以前的尺寸的文件。如果大小,甚至不是关闭的,它是被复制了现在。等待;环路上的这个步骤,直至大小靠近之前的大小。

  3. 虽然你没有完成:

    a.获得的文件。

    b.得到一个清单。检查的大小的新清单,以前的清单和你的文件。如果他们同意:你完成。如果他们不同意:文件改变而你是下载;你没有这样做。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top