从S3 bucket下载图像,并将其存储在不在本地的变量中(boto3)



我想从bucket S3下载一个映像并存储在一个变量中,而不是存储在我的本地pc中,我该怎么做?

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

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

您可以使用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

您可以尝试使用BytesIO((

import io
image_data = io.BytesIO()

在你的试块

s3.Bucket(BUCKET_NAME).download_file(KEYFILE, image_data)  

因此imagedata是应该具有字节格式图像的变量。

最新更新