Laz*_*har 5 json node.js google-cloud-platform google-cloud-functions serverless
如果我使用gzip压缩进行响应,则我的Google Cloud Functions中的JSON响应的大小最多可减少70-80%。
如何从我的函数(通过http(s)触发)发送压缩的json响应?
这也意味着我可以通过Google Cloud Platform节省大量网络费用,并为数据的移动用户更快地加载数据。
我尝试使用本zlib
机模块,但没有运气...
if (req.get('Accept-Encoding') && req.get('Accept-Encoding').indexOf('gzip') > -1) {
interpretation.gzip = true;
const zlib = require('zlib');
res.set('Content-Type', 'text/plain');
res.set('Content-Encoding', 'gzip');
zlib.gzip(JSON.stringify(interpretation), function (error, result) {
if (error) throw error;
res.status(200).send(result);
})
} else {
interpretation.gzip = false;
res.status(200).send(interpretation);
}
Run Code Online (Sandbox Code Playgroud)
在Postman中,响应的大小相同,内容类型已更改,但是Content-Encoding
响应中没有设置标题...
查看App Engine 常见问题解答,特别是“我如何提供压缩内容? ”这个问题的答案:
....要强制提供 gzip 压缩的内容,客户端可以提供“gzip”作为Accept-Encoding和 User-Agent请求标头的值。如果不存在Accept-Encoding标头,则永远不会压缩内容...
此外,在这组帖子有如何发送使用的组合云功能的请求的例子Accept-Encoding
,User-Agent
:
curl -v "https://us-central1-<project>.cloudfunctions.net/test" -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" -H "Accept-Encoding: gzip"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1613 次 |
最近记录: |