gpt4 book ai didi

python - 阻止 ftplib 下载正在进行的文件?

转载 作者:太空狗 更新时间:2023-10-30 02:50:43 25 4
gpt4 key购买 nike

我们有一个 ftp 系统设置来监控/从不受我们控制的远程 ftp 服务器下载。该脚本连接到远程 ftp,并获取服务器上文件的文件名,然后我们检查它是否已经下载。如果尚未下载,则我们下载该文件并将其添加到列表中。

我们最近遇到了一个问题,远程 ftp 端的某人将复制一个巨大的单个文件(>1GB),然后脚本将唤醒并看到一个新文件并开始下载正在复制的文件。

检查这个的最佳方法是什么?我正在考虑抓取文件大小,等待几秒钟,再次检查文件大小,看看它是否增加了,如果没有,我们就下载它。但是由于时间问题,我们不能为每个文件集等待几秒钟,看看它的文件大小是否增加了。

解决此问题的最佳方法是什么,目前一切都是通过 pythons ftplib 完成的,除了使用上述方法之外,我们如何才能做到这一点。

让我再次重申这一点,我们对远程 ftp 站点的控制为 0。

谢谢。

更新 1:

我在想如果我尝试重命名它会怎样...因为我们对 ftp 拥有完全权限,如果文件上传正在进行中,重命名命令会失败吗?

我们这里没有任何真正的选择……是吗?

更新 2:嗯,这里有一些有趣的东西,我们测试的一些 ftp 似乎会在传输开始后自动分配空间。

例如如果我将一个 200mb 的文件传输到 ftp 服务器。当传输处于事件状态时,如果我连接到 ftp 服务器并在上传时进行大小调整。它显示 200mb 的大小。尽管文件只完成了大约 10%。

权限似乎也是随机设置的,IIS 附带的 FTP 服务器会在文件复制完成后设置权限。而其他一些较旧的 ftp 服务器会在您发送文件后立即设置它。

:'(

最佳答案

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

只需下载文件。如果它是一个大文件,那么在下载完成后等待您的场景合理的时间,然后从停止的地方继续下载。重复直到没有更多的东西可以下载。

关于python - 阻止 ftplib 下载正在进行的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/375620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com