python 2.6
我的脚本需要监控 ftp 上的一些 1G 文件,当它被更改/修改时,脚本会将它下载到另一个地方。这些文件名将保持不变,人们会先删除ftp 上的原始文件,然后再上传更新的版本。我的脚本将检查文件元数据,例如文件大小和修改日期,以查看是否有任何差异。
问题是当脚本检查元数据时,新文件可能仍在上传。如何处理这种情况?是否有任何文件属性指示上传状态(如文件已锁定)?谢谢。
请您参考如下方法:
没有这样的属性。您可能无法获取此类文件,但这取决于服务器软件。此外,文件访问标志可以在文件上传时以一种方式设置,然后在上传完成时更改;或不完整的文件可能修改了名称(例如 original_filename.ext.part)——这完全取决于用于上传的服务器端软件。
如果您控制服务器,请制作您自己的元数据,例如上传完成后,在新上传的文件旁边创建一个空标志文件。
在一般情况下,恐怕您能做的最好的事情就是监视文件大小,如果文件大小在一段时间内没有变化,则认为文件已完全上传。使此间隔足够大(以分钟为单位)。
