简体   繁体   English

如何使用boto3从s3执行凭证下载而不保存文件?

[英]How do you perform a credentialed download from s3 using boto3 without saving a file?

It is simple to perform a credentialed download from s3 to a file using 使用以下命令从s3到文件执行凭证下载很简单

import boto3

s3 = boto3.resource('s3')
def save_file_from_s3(bucket_name, key_name, file_name):
    b = s3.Bucket(bucket_name)
    b.download_file(key_name, file_name)

It is easy to download from s3 to a file-like object using 使用s3可以很容易地将其下载到类似文件的对象

import from StringIO import StringIO
import urllib

file_like_object = StringIO(urllib.urlopen(url).read())

(see How do I read image data from a URL in Python? ) (请参阅如何在Python中从URL读取图像数据?

But how do you perform a credentialed download from s3 to a file-like object? 但是,如何执行从s3到类似文件的对象的凭据下载?

You just need to make a call to s3.Bucket.Object.get : 您只需要调用s3.Bucket.Object.get

import boto3

s3 = boto3.resource('s3')
# obj = s3.Object(bucket_name, key_name).get()
bucket = s3.Bucket(bucket_name)
obj = bucket.Object(key_name).get()
body = obj.get('Body')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM