amazon-web-services - AWS Lambda 正在返回截断的图像(二进制响应)
问题描述
我正在使用以下架构
Cloudfront 在 APIGateway 前面,APIgateway 有 Lambda 代理作为端点。
当用户请求图像时,请求会转到云端,而云端又会转到 APIgateway 和 Lambda 代理。
LambdaProxy 对 CDN 进行 API 调用并获取图像。
现在,APIgateway 每次都返回截断的图像。我不确定下面的代码有什么问题
const axios = require('axios')
// const sharp = require('sharp')
const redis = require('redis')
const aws = require("aws-sdk")
var redisClient;
exports.handler = async (event,context,callback) => {
const result = await axios({
url: "https://cdn.pixabay.com/photo/2020/09/18/19/31/laptop-5582775_1280.jpg",
method:"GET" ,
responseType: 'arraybuffer',
// headers : lambdaEvent.headers
})
const buffer = Buffer.from(result.data)
const base64Buffer = buffer.toString("base64")
console.log( "Base64 encoded image is" + base64Buffer)
const imageResponse = {
"statusCode" : result.status,
"headers":{"Content-type":"image/jpeg"},
"body":base64Buffer,
"isBase64Encoded": true
}
return imageResponse
}
我result.data
通过在 S3 中创建文件验证了正确的图像。
我baseg64Buffer
通过在线将 base64Buffer 转换为图像来验证是正确的编码字符串。它向我展示了预期的图像。
但是,APIGateway 响应总是被浏览器截断。
任何人都可以帮助此代码有什么问题。
解决方案
推荐阅读
- unity3d - Unity Shader Graph 径向填充
- r - 将数据框列动态转为同名变量
- spring - Spring Cloud Gateway - 基于Eureka注册路由但改变路由路径
- javascript - 无法在 jquery cropper 中为裁剪的画布设置不同的宽度和高度
- tidymodels - Tidymodels 和嵌入。尝试使用 step_umap 烘焙准备好的食谱时出错
- r - 根据ggplot2中最后一个分面网格的递减值对条形图的Y轴进行排序
- flutter - 我收到此错误类型“列表”
' 不是类型 'String' 的子类型 - java - 如果字符串中的所有字符都不同,则返回 true
- excel - Excel 分组项目/表中的行
- apache-poi - 自定义目录的标题