我想做以下事情:创建一个Google Cloud Function(http触发),从存储桶(Google Cloud Storage)中读取图像文件并将其作为响应发送。
我尝试了一些组合,我认为应该是这样的:
'use strict';
const gcs = require('@google-cloud/storage')();
exports.sendImage = function sendImage(req, res) {
let bucket = gcs.bucket('my-bucket-name');
let myImage = bucket.file('my-image-file.jpg');
res.contentType('image/jpeg');
res.end(myImage, 'binary');
};
上面的函数部署成功,但当我只使用url(在浏览器上)触发它时,它没有显示任何结果。
我这样做是尽可能简单的,因为如果它可以处理一个图像,我可以改进代码来调用任何图像。
我的最终目标是有类似于这篇文章中显示的东西:https://medium.com/google-cloud/uploading-resizing-and-serving-images-with-google-cloud-platform-ca9631a2c556
但运行在Google Cloud Functions上。如果我设法发送一个简单的图像,我可以使用一些模块,如node-image-resize的最终结果。
3条答案
按热度按时间3npbholx1#
我可以自己找到它,我认为它可以帮助很多人。请执行以下操作:
1 -在Google Cloud Storage上创建一个存储桶,假设名称为[my-bucket]
2 -创建一个Google Cloud Function,我们将其命名为imageServer。
3 -不要忘记编辑package.json文件。我的答案如下:
4 -发送简单图像的代码非常简单(在我弄清楚之后):
Obs:测试镜像是名为[test-1.jpg]的文件,它位于bucket的根目录。所以,从这里,我可以把它发送到浏览器。现在只需要修改代码来实现我的主要目标,就像我在问题中所说的那样。
希望能帮上忙。
参考链接:Google Cloud Storage NPMGoogle cloud Functions Hello World tutorial
f0brbegy2#
谢谢你,这是非常有帮助的,让我走上了正确的道路。我想使用Firebase云函数从存储桶中获取文件,该函数与Google Cloud Storage紧密集成,然后通过https提供服务。
我还想首先检查bucket中的文件是否存在,如果不存在,则提供bucket中的占位符图像。
经过一些谷歌搜索,我找到了文件.exists()方法的例子,我最终得到了这个:
第一个
然后,
然后我导出了一个returnPhoto函数来通过https提供照片
bpzcxfmw3#
我正在写C#应用程序,但你的回复帮助了我很多。
如果有人对C#版本感兴趣,那么就在这里