我正在使用AWS API网关(APIG)和Lambda函数构建无服务器的网站。我必须使用代理集成,因为后面的Lambda函数必须接收http请求标头。同时,需要提供一些二进制数据。在我的情况下,favicon.ico文件。其他人可能想要为动态创建的PDF或Excel文件提供服务。 APIG为此目的提供二进制支持。使用base64对数据进行编码并配置该MIME内容类型,以便在将其提供给客户端之前将其解码。但是,这不适用于代理集成。代理集成只是跳过集成响应部分。如何使用代理集成从AWS API网关提供二进制数据?
我试图将favicon.ico的请求重定向到S3端点,但浏览器显示奇怪的行为。因为ico文件来自不同的重定向域,而不是相同的域。
使用base64对其进行编码并让客户端浏览器对其进行解码并不是一种选择,因为这不是标准功能,可能无法在所有浏览器中使用。
我想我不能做任何事情,直到AWS为此添加一个新功能。有没有人看过这个问题?任何想法或建议?
我想在我的一个终端中返回一个PDF,我将它编码为base64,并将“isBase64Encoded”设置为true。但是,我收回的PDF看起来好像不能正确解码。如果我在文本编辑器中打开文件,手动解码并保存,则可以查看PDF。任何想法为什么发生这种情况? – JPL
JPL,请检查您的MIME设置是否支持二进制。 – gini09
自从我上一条评论以来,我已经为所有类型*/*添加了二进制支持,它可以工作,但它会弄乱非二进制类型,比如JSON。如果我输入应用程序/ pdf或甚至应用程序/ *,API网关不会识别这些,并且不会正确处理类型。我不确定格式是否有误或者是否有其他设置。 – JPL