AWS:从s3

时间:2016-04-04 22:57:17

标签: amazon-web-services amazon-s3 lambda aws-api-gateway

我正在尝试构建一个可由HTTP访问的应用程序,该应用程序在s3中提供了一个文档路径,然后执行某些业务逻辑,然后返回该s3 doc的二进制文件。

我开始使用API​​ Gateway和Lambda这样做,但遇到了麻烦,因为这两个服务都设置为使用xml或json。我开始尝试使用base64编码文件和Lambda,然后使用API​​网关对其进行解码,但这也无效。

我发现这篇文章明确表示不要做我正在做的事Get object from S3 in AWS Lambda function and send to Api Gateway

我发现Lambda如此吸引人的原因是与豆茎相比即时自动缩放。有没有其他方法可以实现这一目标,同时仍然提供与Lambda类似的扩展?

2 个答案:

答案 0 :(得分:2)

一个简单的替代方法是发回已签名的网址。

http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-examples.html

s3.getSignedUrl('getObject', params, function (err, url) {
        if (err) {
            deferred.reject(err);
        } else {
            deferred.resolve({
                url: url,
                expires: expires
            });
        }
    });

这推迟了将二进制文件下载到API使用者的责任。

答案 1 :(得分:1)

API网关团队在这里 - 我们积压了二进制直通支持,我们希望在不久的将来能够解决这个问题,尽管我无法给出明确的ETA。我同意你所链接的主题中的一些要点; Lambda和API Gateway中的一些核心功能是为JSON构建的。但是我们计划支持二进制直通,因此至少能够推送数据。