Python中文件监视和可靠上传的最佳实践是什么?
我正在用Python 2.7为Windows开发一个桌面应用程序。这个应用的主要功能是监视一个文件夹,查看有没有新文件出现。每当这个文件夹里有新文件时,应用就会把它上传到远程服务器。远程服务器会为这个文件创建一个数据库记录,并在记录中存储文件的远程路径。
目前,我使用watchdog来监控这个文件夹,使用httplib来上传文件。
我应该采取什么方法来确保新文件能够可靠地上传,不管网络状况如何或者是否断网?
更新:我所说的可靠上传是指,即使应用重启,文件也能继续上传。就像Dropbox那样。有些文件比较大(超过100MB),所以简单的做法,比如用
try / catch
包裹代码然后重新开始上传,并不是很有效。我知道Dropbox使用librsync,但在这种情况下可能有点过于复杂。如果源文件在上传过程中发生了变化,我应该停止上传并重新开始吗?
1 个回答
1
你可以保存一个文件或者数据库,里面记录文件名、时间戳和它们的上传状态。根据这些信息,你就能知道哪些文件已经发送过,哪些文件在应用程序或电脑重启后需要重新上传。
查看时间戳可以告诉你文件是否被修改过,如果有修改,就需要重新开始上传这个文件。