我想通过谷歌云函数来响应二进制(图像(。
我试图解决如下问题:
// .ts
import {Request, Response} from "express";
export function gif(req: Request, res: Response) {
res.contentType("image/gif");
res.send(new Buffer("[Here is image data encoded by base64]", "base64"));
}
然而,其功能的响应如下:
{"type":"Buffer","data":[71,73,...]} // not binary but JSON
此代码与express配合使用很好,但与Cloud函数不配合使用。这是个虫子吗?或者还有别的办法吗?
我通过评论解决了这个问题。我将在这里总结结果。
成功的最终代码:
import {Request, Response} from "express";
export function track(req: Request, res: Response) {
const data = new Buffer("[Here is image data encoded by base64]", "base64");
res.writeHead(200, {"Content-Type": "image/gif"});
res.write(data.toString("binary"), "binary");
res.end();
}
我的目的是创建一个独立于JavaScript的跟踪功能,响应图像体积小,没有意义。