【发布时间】:2017-07-26 16:09:55
【问题描述】:
我必须设置一个 API 端点,该端点以大约 18mb JSON 文件* 的目录文件进行响应,这超出了 API 网关 6mb 的限制。
我可以 gzip 将文件压缩到 256kb,但是在 API Gateway 中,您不能将 Content-Encoding 设置为 gzip。
去年 11 月,他们开始允许使用 binaryMIMETypes,但是我看到的示例也要求数据进行 base64 编码(Standard Lambda Example、Serverless Example)。这将要求客户端不仅要处理 GZIP,还要处理 Base64。
但是 (aws-serverless-express example) 似乎包含 app.use(compression(()),这让我认为可以发送压缩后的 JSON 响应。
我尝试使用 aws-serverless-express 示例,但是当我尝试 npm run setup 时,它无法创建/更新云形成堆栈。
我有一个使用以下代码工作的本地节点/Express 端点
var express = require('express');
var app = express();
var compression = require('compression');
var jsonfile = require('jsonfile');
const cors = require('cors');
var router = express.Router();
app.use('/api', router);
app.use(compression())
app.use(cors())
var port = process.env.PORT || 8080;
router.get('/', function(req, res) {
var file = './data/catalogue.json'
jsonfile.readFile(file, function(err, obj) {
res.json(obj);
})
});
app.listen(port);
我对 Lambda 和 API Gateway 非常陌生,因此对于这样一个新手问题,我深表歉意。任何人都可以提供有关如何将 Lambda/API 网关与 Gzip JSON 文件一起使用的任何帮助或建议。
【问题讨论】:
标签: json node.js amazon-web-services lambda