使用 lambda 非代理集成时是否可以设置自定义标头?
目前我已经启用了二进制支持并且我直接从我的处理程序返回但是我需要设置下载的文件名并且计划使用Content-Disposition: attachment; filename="filename.xlsx"但是我不确定如果我有 lambda 代理集成我该怎么做关掉。
阅读此https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-integration-settings-integration-response.html我不确定它是否仅适用于 json 响应?
该示例将正文注释显示为采用 json 对象,但随后说有一个 base64 编码选项用于二进制支持,但我只是直接从我的函数返回我的二进制数据,如果可能的话,我根本不打算使用 lambda 代理。
我目前正在下载文件,但我正在使用临时文件并且我想命名下载。
# In my service
with tempfile.NamedTemporaryFile(suffix=".xlsx") as tmp:
pd.DataFrame(report_json).to_excel(tmp.name)
bytes_io = BytesIO(tmp.read())
return bytes_io
# In my handler
return base64.b64encode(bytes_io.getvalue())