AWS:从s3下载二进制文件



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

我开始使用API网关和Lambda来完成这项工作,但遇到了麻烦,因为这两个服务都设置为使用xml或json。我开始尝试对文件和Lambda进行base64编码,然后使用API网关对其进行解码,但这也不起作用。

我看到这篇文章明确地说,不要做我正在做的事情,在AWS Lambda函数中从S3获取对象并发送到Api网关。

我觉得Lambda如此吸引人的原因是与豆茎相比,它能瞬间自动缩放。在提供与Lambda类似的缩放功能的同时,是否有其他替代方案可以实现这一点?

一个简单的替代方法是发送回一个签名的url。

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使用者。

neneneba API网关团队在这里-二进制直通支持在我们的积压工作中,我们希望在不久的将来推出,尽管我不能给出确切的ETA。我同意你所联系的线索中的一些观点;Lambda和API网关中的一些核心功能都是为JSON构建的。然而,我们确实计划支持二进制传递,因此至少能够推送数据。

相关内容

  • 没有找到相关文章

最新更新