识别 S3 中未从 FTP 下载的缺失文件
Identifying missing files in S3 that are not downloaded from FTP
我有一些 Python 代码,它从 FTP 下载一些文件并将它们写入 AWS S3 存储桶。现在我想避免丢失任何文件,所以我目前的做法是:
-> 列出 FTP 中的所有可用文件,将文件名添加到列表 list_1
-> 列出 S3 存储桶中的所有文件,将文件名添加到列表中 list_2
-> 然后比较 list_1
和 list_2
,找出没有下载到 s3 的缺失文件
-> 下载丢失的文件。
问题是这些代码需要每小时 运行,并且 FTP 中有很多文件,所以第一步(列出 [=23= 中的文件名]) 需要很长时间才能 运行(对此我有一个单独的问题:)。有没有人有其他更好的想法来改进这个逻辑并可能更快地执行?
参见 => 几乎没有比您目前正在做的更好的方法了。
唯一可能的优化是如果你的服务器支持 -t
切换到 LIST
命令,你可以使用它来获取按修改时间排序的文件列表。
请参阅 (PHP 问题,但仍然相关)。
您可以在遇到第一个文件时中止列表,该文件已经在 S3 中。当然这只是事实,如果您只想上传新文件,而不是添加到 FTP.
的任何文件(甚至是旧文件)
我有一些 Python 代码,它从 FTP 下载一些文件并将它们写入 AWS S3 存储桶。现在我想避免丢失任何文件,所以我目前的做法是:
-> 列出 FTP 中的所有可用文件,将文件名添加到列表 list_1
-> 列出 S3 存储桶中的所有文件,将文件名添加到列表中 list_2
-> 然后比较 list_1
和 list_2
,找出没有下载到 s3 的缺失文件
-> 下载丢失的文件。
问题是这些代码需要每小时 运行,并且 FTP 中有很多文件,所以第一步(列出 [=23= 中的文件名]) 需要很长时间才能 运行(对此我有一个单独的问题:
参见
唯一可能的优化是如果你的服务器支持 -t
切换到 LIST
命令,你可以使用它来获取按修改时间排序的文件列表。
请参阅
您可以在遇到第一个文件时中止列表,该文件已经在 S3 中。当然这只是事实,如果您只想上传新文件,而不是添加到 FTP.
的任何文件(甚至是旧文件)