用Boto3打开S3对象作为string
我知道,与博托2可以打开一个S3对象作为string:
get_contents_as_string() http://boto.readthedocs.org/en/latest/ref/file.html?highlight=contents%20string#boto.file.key.Key.get_contents_as_string
在boto3中有一个等价的函数吗?
read
将返回字节。 至less对于Python 3来说,如果你想返回一个string,你必须使用正确的编码进行解码:
import boto3 s3 = boto3.resource('s3') obj = s3.Object(bucket, key) obj.get()['Body'].read().decode('utf-8')
这不在boto3文档中。 这对我工作:
object.get()["Body"].read()
对象是s3对象: http : //boto3.readthedocs.org/en/latest/reference/services/s3.html#object
由于在AWS Lambda中使用Python 2.7的.get()
我有一个读取/parsingS3对象的问题。
我添加了JSON的例子来显示它变得可以parsing:)
import boto3 import json s3 = boto3.client('s3') obj = s3.get_object(Bucket=bucket, Key=key) j = json.loads(obj['Body'].read())
注意:我的对象是所有ascii,所以我不需要.decode('utf-8')
如果body包含一个io.StringIO,你必须像下面这样做:
object.get()['Body'].getvalue()