从 S3 存储桶下载图像并将其存储在本地以外的变量中 (boto3)

Dha*_* b. 2 python amazon-s3 amazon-web-services

我想从存储桶 S3 下载图像并将其存储在变量中,而不是存储在本地电脑中,我该怎么做?

我正在使用此代码存储在本地:

BUCKET_NAME = 'mybucket' 
KEYFILE = 'myImage.jpg' 

try:
    s3.Bucket(BUCKET_NAME).download_file(KEYFILE, 'myImageInLocal.jpg')          
except botocore.exceptions.ClientError as e:
    if e.response['Error']['Code'] == "404":
        print("The object does not exist.")
    else:
        raise
Run Code Online (Sandbox Code Playgroud)

Mar*_*cin 5

您可以使用download_fileobj下载到BytesIO变量:

from io import BytesIO

BUCKET_NAME = 'mybucket' 
KEYFILE = 'myImage.jpg' 

s3_file = BytesIO()

try:
    s3.Bucket(BUCKET_NAME).download_fileobj('myImageInLocal.jpg', s3_file)          
except botocore.exceptions.ClientError as e:
    if e.response['Error']['Code'] == "404":
        print("The object does not exist.")
    else:
        raise
Run Code Online (Sandbox Code Playgroud)