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

Dou*_*haw 2 python amazon-s3 boto3

使用以下命令执行从 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)
Run Code Online (Sandbox Code Playgroud)

使用以下命令可以轻松从 s3 下载到类似文件的对象

import from StringIO import StringIO
import urllib

file_like_object = StringIO(urllib.urlopen(url).read())
Run Code Online (Sandbox Code Playgroud)

(请参阅如何在 Python 中从 URL 读取图像数据?

但是如何执行从 s3 到类文件对象的凭证下载?

Jor*_*ips 5

您只需拨打电话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')
Run Code Online (Sandbox Code Playgroud)