【发布时间】:2018-05-13 12:06:47
【问题描述】:
使用 boto3,您可以根据给定存储桶名称和密钥,从 S3 中的某个位置读取文件内容(假设初步 import boto3)
s3 = boto3.resource('s3')
content = s3.Object(BUCKET_NAME, S3_KEY).get()['Body'].read()
这将返回一个字符串类型。我需要获取的特定文件恰好是一组类似字典的对象,每行一个。所以它不是 JSON 格式。我不想将其作为字符串读取,而是将其作为文件对象流式传输并逐行读取;除了首先在本地下载文件之外找不到其他方法
s3 = boto3.resource('s3')
bucket = s3.Bucket(BUCKET_NAME)
filename = 'my-file'
bucket.download_file(S3_KEY, filename)
f = open('my-file')
我要问的是,是否可以对文件进行这种类型的控制,而不必先在本地下载它?
【问题讨论】:
-
stackoverflow.com/a/16890018/6103001 - 也许这就足够了。如果不找
botocore.response.StreamingBody
标签: python amazon-web-services amazon-s3 boto3