用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()