gpt4 book ai didi

python - s3multiput (boto) 从 EC2 实例上传到 s3 的静默失败

转载 作者:行者123 更新时间:2023-11-28 18:51:00 24 4
gpt4 key购买 nike

我正在尝试使一个过程自动化,该过程在一个(或多个)AWS 实例上收集数据,每小时将数据上传到 S3,以通过解耦过程检索以进行解析和进一步操作。作为第一步,我创建了一些调用 boto 实用程序 s3multiput 的 crontab 启动的 shell 脚本(在 Ubuntu 12.04 LTS 中运行)。

在大多数情况下,这工作正常,但偶尔(可能每周一次)文件无法出现在 s3 存储桶中,而且我看不到任何抛出的错误或异常来追查原因。

我正在使用 boto 2.6.0 中包含的 s3multiput 实用程序。 Python 2.7.3 是实例上的默认 python。我为实例分配了一个 IAM 角色,以向 boto 提供 AWS 凭证。

我有一个 crontab 调用一个脚本,该脚本调用一个包装器,该包装器调用 s3multiput。我在 s3multiput 调用中包含了 -d 1 标志,并使用 2>&1 重定向了 crontab 作业上的所有输出,但是丢失数据的小时报告看起来就像前一小时和后一小时的报告,均成功。

因此,在 99% 的情况下这都有效,但当它失败时,我不知道为什么,而且我无法确定要查看的位置。当解析器作业试图从存储桶中提取数据但它不存在时,我才发现失败。数据在应该从中上传的目录中安全无虞,因此我可以手动完成,但宁愿不必这样做。

如果有帮助,我很乐意发布大约 30-40 行相关代码,但想知道是否有其他人遇到过这个并且听起来很熟悉。

某个重要的日子我会回到管道的这一部分并用 python 重写它以消除 s3multiput,但我们还没有开发时间。

我如何调查 s3multiput 上传出了什么问题?

最佳答案

首先,我会尝试更新 boto;对开发分支的提交提到了分段上传失败时的日志记录。请注意,这样做需要使用 s3put,因为 s3multiput 被折叠到 s3put 中。

关于python - s3multiput (boto) 从 EC2 实例上传到 s3 的静默失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203745/

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