识别 S3 中未从 FTP 下载的缺失文件

Identifying missing files in S3 that are not downloaded from FTP

我有一些 Python 代码,它从 FTP 下载一些文件并将它们写入 AWS S3 存储桶。现在我想避免丢失任何文件,所以我目前的做法是:

-> 列出 FTP 中的所有可用文件,将文件名添加到列表 list_1 -> 列出 S3 存储桶中的所有文件,将文件名添加到列表中 list_2 -> 然后比较 list_1list_2,找出没有下载到 s3 的缺失文件 -> 下载丢失的文件。

问题是这些代码需要每小时 运行,并且 FTP 中有很多文件,所以第一步(列出 [=23= 中的文件名]) 需要很长时间才能 运行(对此我有一个单独的问题:)。有没有人有其他更好的想法来改进这个逻辑并可能更快地执行?

参见 => 几乎没有比您目前正在做的更好的方法了。

唯一可能的优化是如果你的服务器支持 -t 切换到 LIST 命令,你可以使用它来获取按修改时间排序的文件列表。 请参阅 (PHP 问题,但仍然相关)。

您可以在遇到第一个文件时中止列表,该文件已经在 S3 中。当然这只是事实,如果您只想上传新文件,而不是添加到 FTP.

的任何文件(甚至是旧文件)