相关疑难解决方法(0)

迭代 AWS S3 存储桶中的对象

我的脚本正在运行,但是我正在扫描的存储桶很大,并且在一段时间后超时。我可以做什么来提高效率或从特定位置开始?

import boto3

s3 = boto3.resource('s3')
b = s3.Bucket('my_bucket')

for obj in b.objects.all():
   # Open the file, run some RegEx to find some data. If it's found, output to a log file
Run Code Online (Sandbox Code Playgroud)

我遇到的第一个问题是桶的大小。大约有 150 万个物体。我的代码打开文本文件寻找一些正则表达式,如果正则表达式匹配,那么它会输出对象名称和找到的内容。

运行脚本大约一个小时后,它在抛出错误之前输入了大约 40k 对象:

requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine("''",))
Run Code Online (Sandbox Code Playgroud)

或者

object at 0x109e82d50>: Failed to establish a new connection: [Errno 60] Operation timed out',))
Run Code Online (Sandbox Code Playgroud)

它正在搜索的搜索项是按字母顺序排列的,因此我们会说它通过了“E”部分,然后超时。我想从以“F”开头的对象开始。

python amazon-s3 amazon-web-services aws-cli

2
推荐指数
1
解决办法
4642
查看次数

标签 统计

amazon-s3 ×1

amazon-web-services ×1

aws-cli ×1

python ×1