【发布时间】:2015-11-19 16:45:39
【问题描述】:
我正在尝试从存储桶中获取 .jpg 文件并将其发送回 api 网关。当我看到正在记录的内容时,我相信我的设置是正确的。它可以很好地从 s3 中获取文件,而 gm 是 graphicsmagick 库。不知道我是否正确使用它。
在 lambda 函数中我这样做(很多代码来自 aws 示例):
async.waterfall([
function download(next) {
console.log(srcKey);
console.log(srcBucket);
// Download the image from S3 into a buffer.
s3.getObject({
Bucket: srcBucket,
Key: srcKey
},
next);
},
function transform(response, next) {
console.log(response);
next(null, 'image/jpeg', gm(response.Body).quality(85));
},
function sendData(contentType, data, next){
console.log(contentType);
console.log(data);
imageBuffer = data.sourceBuffer;
context.succeed(imageBuffer);
}
]
);
响应头的内容长度为:85948,这似乎不正确,因为原始文件只有 36kb。有谁知道我做错了什么?
【问题讨论】:
-
图像可能会因处理而增大,这并非不可想象,但似乎不太可能。实际的响应正文是什么样的,例如,保存然后在文本/十六进制编辑器中查看?
-
哈基本上实现了完全相同的东西,只是在几个小时后终于偶然发现了这个问答:'(
-
现在有可能 - aws.amazon.com/blogs/compute/…
标签: node.js amazon-web-services amazon-s3 aws-lambda aws-api-gateway