首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从Google Cloud存储中读取图片并使用Google Cloud function发送

从Google Cloud存储中读取图片并使用Google Cloud function发送
EN

Stack Overflow用户
提问于 2017-08-24 00:01:58
回答 1查看 5K关注 0票数 3

我想做以下事情:创建一个Google Cloud函数(http触发),它只需从存储桶(Google Cloud Storage)读取图像文件并将其作为响应发送。

我尝试了一些组合,我认为应该是这样的:

代码语言:javascript
运行
AI代码解释
复制
'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

而是运行在谷歌云函数上。如果我设法发送一个简单的图像,我可以使用一些模块,比如node-image-resize来得到最终的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-24 19:15:18

嗯,我可以自己找到它,我认为它可以帮助很多其他人。因此,请执行以下操作:

1-在Google Cloud Storage上创建一个存储桶,假设名称为my-bucket

2-创建一个Google Cloud Function,让我们将其命名为imageServer。

3-不要忘记编辑package.json文件。我的答案如下:

代码语言:javascript
运行
AI代码解释
复制
{
  "name": "image-server",
  "version": "0.0.1",
    "dependencies": {
    "@google-cloud/storage": "^1.2.1"
  }
}

4-发送简单图片的代码真的很简单(在我弄清楚之后):

代码语言:javascript
运行
AI代码解释
复制
'use strict';

const gcs = require('@google-cloud/storage')();

exports.imageServer = function imageSender(req, res) {
  let file = gcs.bucket('my-bucket').file('test-1.jpg');
  let readStream = file.createReadStream();

  res.setHeader("content-type", "image/jpeg");
  readStream.pipe(res);

};

Obs:测试镜像是名为test-1.jpg的文件,它位于bucket的根目录下。因此,从这里,我可以将其发送到浏览器。现在只需要更改代码来实现我的主要目标,就像我在问题中所说的那样。

我希望它能帮上忙。

参考链接:Google Cloud Storage NPM Google cloud Functions Hello World tutorial

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45850963

复制
相关文章
收到告警后如何快速定位问题
上面两个错误是突然出现的,如果只看第一个错误,就可能以为是redisson的bug(https://github.com/redisson/redisson/issues/3273)。实际上是因为命令ZRANGEBYSCORE在大key上执行,耗时太长,引发其他请求也超时
十毛
2021/11/24
1.6K0
时隔一年半终于可以再次收到谷歌 AdSense 付款了
进入十月份了终于再时隔一年半以后可以再次收到谷歌 AdSense 付款了,上次收款还是 2017 年 3 月份的事儿了,自 2017 年 3 月开始明月就基本停止了 AdSense 广告的投放,期间有过短时间的折腾和尝试也都是体验 AdSense 新版广告样式为主的,基本也就没有啥实质的收入的。也就是今年九月份开始将 AdSense 广告作为主要的广告联盟来全站点投放。
明月登楼的博客
2019/05/15
7880
时隔一年半终于可以再次收到谷歌 AdSense 付款了
如何用Java开发付款功能
官网地址 https://opendocs.alipay.com/open/54/103419
编程思维
2023/08/23
3760
如何用Java开发付款功能
8个woocommerce支付网关插件推荐
当然您以前听说过WooCommerce吗?这是用WordPress建立在线商店的最简单方法之一。WooCommerce允许网站所有者添加产品,数字商品,甚至订​​阅(取决于您已安装的WooCommerce扩展)。但是,对于WooCommerce包含的所有强大功能,仅内置了一些默认付款选项。幸运的是,您可以添加大量免费的高级WooCommerce付款网关插件,为客户提供新的结帐选项。
Hoan外贸建站
2020/12/03
6.9K0
如何在JavaScript中实现某个方法执行超时后则继续执行其它方法?
异想天开,想用 setTimeout 来做个 workaround ,但是 setTimeout / setInterval 方法是在它所在的方法执行完之后才开始计时的,于是,光当一声,这个 workaround 不成立。
阿敏总司令
2019/02/28
1.9K0
iOS小技能: 限制账号退出登陆后无法收到推送功能(递归设置和删除别名)
⭕ 解决iOS15之后本地通知通知栏弹出多次的问题:使用Service Extension拦截消息推送,修改UNNotificationSound为本地拼接的音频,来避免产生多条横幅。
公众号iOS逆向
2022/08/22
1.7K0
iOS小技能: 限制账号退出登陆后无法收到推送功能(递归设置和删除别名)
事件处理类,收到事件后具体的业务处理逻辑
事件生产类,定义如何将业务逻辑的事件转为disruptor事件发布到环形队列,用于消费: package com.bolingcavalry.service; import com.lmax.disruptor.RingBuffer; public class StringEventProducer { // 存储数据的环形队列 private final RingBuffer<StringEvent> ringBuffer; public StringEventProduc
用户8671053
2021/09/26
6170
绑定事件中 如可控制函数的执行次数
var flag = true; function onlyOne() { if(flag) { "这里是要执行的代码"; } flag = false//该方法是控制函数仅执行一次 因为flag是全局变量 onlyOne()函数执行一次后flag就变成false了 函数就执行不了了
大当家
2018/06/28
2.4K0
如何在 docker 中执行 crontab
新建名为hello-cron的文件 内容为: # PATH非常重要,因为cron bash和系统环境变量不一致 PATH="/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" * * * * * echo hello > /proc/1/fd/1 2>/proc/1/fd/2 # An empty line is required at the end of this file for a valid c
马哥Python
2019/06/27
7.1K0
SAP MM 分期付款场景下的付款方式
近日收到所在项目上的某用户报告的一个问题,说是某个采购订单发票里的付款方式与财务凭证里的付款方式不一致,让帮忙解释一下。
SAP虾客
2021/03/01
5860
Sublime Text 执行后只有运行
分析:操作回忆:开始是可以看到运行结果的,后来在Tools>>Build with 选择了“Syntax Check”,进行了语法检查,后来再操作就如上了;
py3study
2020/01/16
9210
如何在 Chrome 中执行 JavaScript 代码
要在浏览器中执行 JavaScript 脚本,首先你的浏览器得支持。现在主流推荐 Chrome 浏览器,也可以使用基于 Chromium 的 Edge 浏览器。下面来介绍如何在 Chrome 中打开开发者工具,以及如何在开发者工具中运行调试 JavaScript 代码。
村雨遥
2022/03/14
6.2K0
如何在 Chrome 中执行 JavaScript 代码
iphone被偷收到“骗子钓鱼短信”后对骗子网站渗透测试
上面这条信息是一个网友的,2020年过年期间有几个网友在火车站遇到手机给偷了,然后也收到这种信息,然后跑来私信我求助,而且过年期间上百个“”!
Power7089
2020/07/27
1.1K0
iphone被偷收到“骗子钓鱼短信”后对骗子网站渗透测试
如何在远程系统执行程序
在我们获得用户名口令后,尝试远程登陆目标主机并执行程序,结合实际环境做了如下测试.
Ms08067安全实验室
2019/12/18
1.6K0
vmi运行流程简图_申请强制执行后多久执行
`vmm_test_begin(testcase_name,vmm_env,“Test Case Name String”) ;
全栈程序员站长
2022/11/09
6380
点击加载更多

相似问题

R中的Webscraping

13

R: Webscraping文件?

24

需要输入的R中的Webscraping

14

R中的Webscraping -注释掉的表

10

用webscraping检查r中的循环错误

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档