我正在使用Python 2.7构建一个Windows桌面应用程序。该应用程序的主要功能是监视文件夹中是否有新文件。每当该文件夹中出现新文件时,该应用程序会将其上传到远程服务器。远程服务器上的进程会为该文件创建一个数据库记录,并在该记录中存储远程文件路径。
目前,我正在使用watchdog来监视目录,并使用httplib进行文件上传。
问题如下:
目前,我正在使用watchdog来监视目录,并使用httplib进行文件上传。
问题如下:
- 无论网络条件或互联网连接是否丢失,我应采取哪种方法来确保可靠地上传新文件?
- 如果在上传期间更改了源文件怎么办?我应该停止上传并重新开始吗?
更新:我所说的可靠上传是指应用程序即使重新启动也会上传文件。一些文件相当大(>100 MB),因此简单的解决方案如在try / catch
中包装代码并重新开始上传不是非常有效。我知道Dropbox使用librsync,但在这种情况下可能有点过度。
while True
中使用try except
语句。 - Zeinab Abbasimazarwhile True
循环中重试。我需要应用程序即使在程序重新启动时也能上传这些文件。即使PC重新启动也是如此。我相信Dropbox以某种方式实现了这一点。我不知道这里的最佳实践,但我认为它是保持要上传的文件队列或在每次失败后使用librsync
来跳过反复上传同一文件(文件可能很大)的某种形式。我会更新问题。 - Warwick