Node.js 如何使用节点API从Google云存储返回指定的图像大小?

Node.js 如何使用节点API从Google云存储返回指定的图像大小?,node.js,google-app-engine,google-cloud-storage,Node.js,Google App Engine,Google Cloud Storage,我正在使用云存储,而且它运行良好,我只是不想每次都返回完整大小的图像。我想知道是否有一种方法可以指定宽度,以便在我请求时调整图像的大小 这是工作代码。我只需要返回更小的图像,比如说,300px宽(保持原始纵横比)。这个数字可能会改变或波动,所以我不想以不同的尺寸保存大量不同的版本,除非我必须这样做 var fileName = "Image.png"; var stream = bucket.file(fileName).createReadStream(); res.writeHead(2

我正在使用云存储,而且它运行良好,我只是不想每次都返回完整大小的图像。我想知道是否有一种方法可以指定宽度,以便在我请求时调整图像的大小

这是工作代码。我只需要返回更小的图像,比如说,300px宽(保持原始纵横比)。这个数字可能会改变或波动,所以我不想以不同的尺寸保存大量不同的版本,除非我必须这样做

var fileName = "Image.png";

var stream = bucket.file(fileName).createReadStream();

res.writeHead(200, { 'Content-Type': imageInfo.mime_type });

stream.on('data', function (data) {
  res.write(data);
});

stream.on('error', function (err) {
  console.log('error reading stream', err);
});

stream.on('end', function () {
  res.end();
});
我发现这个网站解释了如何在PHP中实现这一点,所以我猜可能有一种在node中实现这一点的方法


这篇文章应该会让你一帆风顺:“使用谷歌云平台上传、调整大小和服务图像”@Lipis

这对于公共URL来说意义重大,我的恰好是私有的,这就是为什么我希望直接通过节点API来实现这一点。它们是私有的,因为在没有身份验证的情况下无法查看它们,还是它们是公共只读的?没有身份验证的情况下无法查看它们。每个图像都受到保护(不仅仅是一个秘密链接,用户必须登录才能看到图像)。图像大小调整和用户是否经过身份验证似乎是不同的问题。您应该能够使用上述策略,但要有与下载/查看图像存储中所有资源相关的安全规则。