我想从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是应该具有字节格式图像的变量。