【发布时间】:2021-02-23 14:47:13
【问题描述】:
我构建了一个 python lambda,它生成一个包含证书和密码的 zip 文件。该文件采用 base64 编码并通过 API 网关使用代理集成返回。使用浏览器提示下载 API 网关。响应将保存到带有 zip 扩展名的文件中。
保存的文件仍然是 base64 编码的。最终用户应该会收到一个工作 zip 文件。 Base64 解码文件会提供一个有效的 zip 文件。用户不必解码文件。
添加 Content-Encoding 标头会导致 API 网关集成失败,并出现无法对来自 lambda 的响应进行 base64 解码的错误。
注意 - 从 b64content 中删除前导和尾随字符修复了 str() 函数,将前导 b' 和尾随 tic 放在一起。你能告诉我我是 python 和 AWS 的菜鸟吗? ;-)
headers = {'Content-Type': 'application/zip, application/octet-stream',
'Content-Disposition': f'attachment; filename="{filename}.zip"'
}
if 'b64' in event['params']:
headers['Content-Encoding'] = 'base64'
response = {
'statusCode': 200,
'isBase64Encoded': True,
'headers': headers,
'body': str(b64content)[2:-1],
}
【问题讨论】:
标签: aws-lambda aws-api-gateway