如何在不保存文件的情况下使用 boto3 从 s3 执行凭据下载?
How do you perform a credentialed download from s3 using boto3 without saving a file?
使用
执行从 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)
使用
很容易从 s3 下载到类似文件的对象
import from StringIO import StringIO
import urllib
file_like_object = StringIO(urllib.urlopen(url).read())
(参见 How do I read image data from a URL in Python?)
但是如何执行从 s3 到类文件对象的凭据下载?
您只需拨打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')
使用
执行从 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)
使用
很容易从 s3 下载到类似文件的对象import from StringIO import StringIO
import urllib
file_like_object = StringIO(urllib.urlopen(url).read())
(参见 How do I read image data from a URL in Python?)
但是如何执行从 s3 到类文件对象的凭据下载?
您只需拨打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')