gpt4 book ai didi

python - 识别 FTP 中的新文件并将它们写入 AWS S3

转载 作者:行者123 更新时间:2023-12-04 08:03:12 25 4
gpt4 key购买 nike

我目前正在使用 ftplib在 Python 中获取一些文件并将它们写入 S3。
我使用的方法是使用 with open如下所示:

with open('file-name', 'wb') as fp:
ftp.retrbinary('filename', fp.write)
从FTP服务器下载文件并将它们保存在一个临时文件夹中,然后将它们上传到S3。
我想知道这是否是最佳实践,因为这种方法的缺点是:
如果文件太多&大,我可以下载它们并上传到S3,然后从临时文件夹中删除它们,
但问题是如果我每天运行一次这个脚本,我必须再次下载所有内容,那么我如何检查文件是否已经下载并存在于 S3 中,以便脚本只会处理 FTP 中新增的文件?
希望这是有道理的,如果有人有例子或其他东西会很棒,非常感谢。

最佳答案

您将处理给定文件路径的事实缓存到持久存储(例如,SQLite 数据库)。如果文件在您处理后可能发生更改,您也可以通过缓存来自 FTP.dir() 的时间戳来检测到这一点。和/或尺寸 FTP.size(filename) .如果这不起作用,您还可以缓存文件的校验和(例如 SHA256),然后再次下载文件以重新计算校验和以查看文件是否已更改。 s3 可能支持条件上传 (etag),在这种情况下,您可以 calculate the etag的文件,然后使用该 header 集上传它,理想情况下带有“期望:100-继续” header ,以查看在您尝试上传数据之前它是否已经获得了该文件。

关于python - 识别 FTP 中的新文件并将它们写入 AWS S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66348800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com