【发布时间】:2021-09-26 02:35:53
【问题描述】:
我在 s3 存储桶中有一张图片,我试图在响应中传递它。我设法这样做了,但文件在途中损坏了。
Lambda 代码:
def get_file(file):
s3 = boto3.client('s3')
bucket = 'my_bucket'
file = s3.get_object(Bucket=bucket, Key=file)['Body'].read()
encoded_bytes = base64.b64encode(file)
headers = {
'Content-Type': 'image/jpeg'
}
response = {
'statusCode': 200,
'IsBase64Encoded': True,
'body': json.dumps({'file': base64.b85encode(encoded_bytes).decode('utf-8')}),
'headers': headers
}
return response
再次将其转换为字节并尝试将其保存为图像:
img = str.encode(string)
with open('image.jpeg','wb') as f:
f.write(img)
从 AWS 发送时我做错了什么?
谢谢!
【问题讨论】:
-
为什么你不生成一个singed url呢?并在响应中发送url,让客户端直接从s3获取图片
-
你为什么使用 b85 编码?
标签: python python-3.x amazon-web-services aws-lambda