使用Boto3将S3对象作为字符串打开
使用Boto3将S3对象作为字符串打开
我知道在Boto 2中可以使用get_contents_as_string()
将S3对象打开为一个字符串。
在boto3中存在一个类似的功能吗?
admin 更改状态以发布 2023年5月21日
因为在 AWS Lambda 内部使用 Python 2.7 的 .get()
,我遇到了从 S3 读取/解析对象的问题。
我添加了 json 示例来表明它可以被解析:)
import boto3 import json s3 = boto3.client('s3') obj = s3.get_object(Bucket=bucket, Key=key) j = json.loads(obj['Body'].read())
注意(对于 Python 2.7):我的对象全部是 ascii,所以我不需要使用 .decode('utf-8')
注意(对于 Python 3):我们升级到了 Python 3,发现 read()
现在返回 bytes
,所以如果你想从中获取字符串,你必须使用:
j = json.loads(obj['Body'].read().decode('utf-8'))