首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在firebase云函数中创建方形缩略图

在Firebase云函数中创建方形缩略图,可以通过以下步骤实现:

  1. 首先,确保你已经设置好了Firebase项目,并且已经安装了Firebase CLI。
  2. 创建一个云函数,可以使用Firebase CLI的命令行工具来创建。在终端中,使用以下命令创建一个新的云函数:
代码语言:txt
复制

firebase functions:create thumbnail

代码语言:txt
复制

这将创建一个名为"thumbnail"的云函数。

  1. 在云函数的代码中,你可以使用Node.js来实现创建方形缩略图的逻辑。以下是一个示例代码:
代码语言:javascript
复制

const functions = require('firebase-functions');

const admin = require('firebase-admin');

const { Storage } = require('@google-cloud/storage');

const sharp = require('sharp');

admin.initializeApp();

exports.thumbnail = functions.storage.object().onFinalize(async (object) => {

代码语言:txt
复制
 const fileBucket = object.bucket;
代码语言:txt
复制
 const filePath = object.name;
代码语言:txt
复制
 const contentType = object.contentType;
代码语言:txt
复制
 const fileName = filePath.split('/').pop();
代码语言:txt
复制
 const bucket = admin.storage().bucket(fileBucket);
代码语言:txt
复制
 const tempFilePath = `/tmp/${fileName}`;
代码语言:txt
复制
 if (!contentType.startsWith('image/')) {
代码语言:txt
复制
   console.log('This is not an image.');
代码语言:txt
复制
   return null;
代码语言:txt
复制
 }
代码语言:txt
复制
 if (fileName.startsWith('thumb_')) {
代码语言:txt
复制
   console.log('Already a Thumbnail.');
代码语言:txt
复制
   return null;
代码语言:txt
复制
 }
代码语言:txt
复制
 await bucket.file(filePath).download({
代码语言:txt
复制
   destination: tempFilePath,
代码语言:txt
复制
 });
代码语言:txt
复制
 const thumbFileName = `thumb_${fileName}`;
代码语言:txt
复制
 const thumbFilePath = filePath.replace(fileName, thumbFileName);
代码语言:txt
复制
 const thumbFileBucket = bucket.file(thumbFilePath);
代码语言:txt
复制
 await sharp(tempFilePath)
代码语言:txt
复制
   .resize(200, 200)
代码语言:txt
复制
   .toFile(tempFilePath);
代码语言:txt
复制
 await bucket.upload(tempFilePath, {
代码语言:txt
复制
   destination: thumbFilePath,
代码语言:txt
复制
   metadata: {
代码语言:txt
复制
     contentType: contentType,
代码语言:txt
复制
   },
代码语言:txt
复制
 });
代码语言:txt
复制
 return thumbFileBucket.makePublic();

});

代码语言:txt
复制

这段代码使用了Firebase的Cloud Storage和Sharp库来处理图像。它会在上传图片后,自动创建一个方形缩略图,并将其上传到相同的存储桶中。

  1. 部署云函数,使用以下命令将云函数部署到Firebase:
代码语言:txt
复制

firebase deploy --only functions

代码语言:txt
复制

这将部署你的云函数,并为其分配一个URL。

现在,当你在Firebase的Cloud Storage中上传一张图片时,云函数将自动创建一个方形缩略图,并将其保存在相同的存储桶中。你可以根据实际需求修改代码中的缩略图尺寸和命名规则。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

腾讯函数开发的实践

腾讯函数它的帮助文档里面有已经提到了它的几个具体实践,通过管中窥豹,我也来谈谈具体业务的几个实践。 简而言之,函数的个人看法就是提供一个代码的运行环境。...按照个人的使用顺序,来说说个人在使用的体会。 定时触发器 这个不难理解,就是定时触发函数,当然你也知道不是服务器自己就有crontab吗?为什么还要使用函数?...API网关触发器 API网关触发器就是通过网关去调用腾讯函数,具体操作就是web访问去触发嘛,还可以绑定自己的域名,像是公众号、小程序的开发,就能极大的提高稳定性简化部署,逻辑处理函数,而持久化则可以使用腾讯数据库...总结: 基本上函数加上数据库的持久话就能取代很多常见开发的工作,虽然价钱相对CVM来说更贵一点,但是它能简化部署的同时还能保证高可用,也能进一步简化架构,特别适合开发人员不多的公司,相信Serverless...以后的开发也会是一种趋势。

2.8K00

我们能用函数做什么?

前言 本文以Firebase为例,因为腾讯函数正在内测,还没申请到。...Firebase以独特的方式使用函数来满足其独特需求,典型运用的领域: 当发生了一些新奇有趣的事情通知用户 执行实时的数据库清理和维护 上执行密集的任务,而不是本地的应用程序上 与第三方的服务和...在这样的程序,由实时数据库触发的写入功能以存储新的关注者可以创建Firebase消息通知,让用户知道他们的粉丝数又增加了。...下面是它的工作原理图: 当图像上传到Storage的时候,该函数会被触发 该函数下载该图像的并创建它的缩略图函数将此缩略图的位置写入数据库,这样客户端程序就可以使用它 该函数缩略图上传到新的存储位置...类似于上面的上执行密集的任务,而不是本地的应用程序上 将存储对象存储COS的文件通过Map函数进行文件映射 将映射出来的许多小文件分别通过函数处理 然后将处理后的文件存储至数据库(使得

16.7K40

【玩转腾讯】让NuxtSSR函数飞起来

那如何在开发让我的Nuxt的SSR跑起来呢 往下看 开发需求 node.js环境 我们需要用到npm以及函数是基于node.js -v8.9 所以node.js必不可少~ create-nuxt-app...注:每个账户只能创建一个开启免费资源的环境 点击立即开通后,环境会自动进行初始化。...创建完成后我们使用命令tcb env:list来查看环境信息,并将环境ID复制下来~ 我们进入到开发项目目录nuxt 此时的目录结构是这样的 . ├── functions /...中将envID改成自己的环境ID [d2d7b506-58c0-4901-be9a-ee9ee19726f7.png] 我们进入到functions来新建一个函数functions中一个文件夹为一个函数...函数配置中点击编辑 [7abd024c-7997-495d-94b8-9e1ad9647883.png] 总结 NuxtSSR部署三步走 构建开发项目 函数构建nuxt项目并配置 部署函数

1.9K178

PHP 自定义 function_alias 函数函数创建别名

我们知道 PHP 有一个为类创建一个别名的函数:class_alias,比如我们有个类名字是 WPJAM_Items,我们希望使用 WPJAM_Item 的时候效果一致,可以使用下面的代码为类 WPJAM_Items...创建一个别名 WPJAM_Item 。...class_alias('WPJAM_Items', 'WPJAM_Item'); 但是 PHP 就没有可以为函数创建一个别名的函数,比如我之前创建了一个函数 wpjam_is_mobile 来判断当前用户的设备是不是移动设备...于是我把自己写的函数直接通过 WordPress 的函数实现: function wpjam_is_mobile(){ return wp_is_mobile(); } 这样感觉上略显繁琐,没有创建别名的方式简洁...,那么我们就自己创建一个 function_alias 函数,实现为函数创建别名: function function_alias($original, $alias){ if(!

1.8K30

如何解决DLL的入口函数创建或结束线程时卡死

以上都是题外话,本文主要说明DLL入口函数里面创建和退出线程为什么卡死和如何解决的问题。...1) DLL_PROCESS_ATTACH 事件 创建线程 出现卡死的问题 通常情况下在这事件仅仅是创建并唤醒线程,是不会卡死的,但如果同时有等待线程正式执行的代码,则会卡死,因为该事件...所以解决办法就是 DLL_PROCESS_ATTACH 事件,仅创建并唤醒线程即可(此时即使是唤醒了,线程也是处理等待状态),线程函数会在DLL_PROCESS_ATTACH事件结束后才正式执行(...解决办法同样是避免 DLL_PROCESS_DETACH事件结束线程,那么我们可以该事件创建并唤醒另外一个线程,该新的线程里,结束需要结束的线程,并在完成后结束自身即可。...提醒: 标准的做法还是建议遵循MS的规则,不要在DLL入口函数做线程相关的创建和释放操作。 总体上代码如下: ?

3.7K10

【C++】构造函数分类 ② ( 不同的内存创建类的实例对象 | 栈内存创建实例对象 | new 关键字创建对象 )

一、不同的内存创建类的实例对象 1、栈内存创建实例对象 在上一篇博客 【C++】构造函数分类 ① ( 构造函数分类简介 | 无参构造函数 | 有参构造函数 | 拷贝构造函数 | 代码示例 - 三种类型构造函数定义与调用...栈内存的 变量 Student s1 ; 这些都是 栈内存 创建 类的实例对象 的情况 ; // 调用无参构造函数 Student s1; // 打印 Student s1 实例对象值..., 不需要手动销毁 , 函数的生命周期结束的时候 , 会自动将栈内存的实例对象销毁 ; 栈内存 调用 构造函数 创建的 实例对象 , 不需要关注其内存占用 ; 2、堆内存创建实例对象 栈内存..., 栈内存只占 4 字节的指针变量大小 ; Student* s2; C++ 语言中 , 可以使用 new 关键字 , 调用有参构造函数 , 创建类的 实例对象 ; 在下面的 C++ 代码 ,...声明并定义了 MyClass 类 , 该类定义了一个有参构造函数 , 接受两个整数作为 构造函数参数 ; main 函数 , 使用 使用 new 关键字 来调用 有参构造函数 创建 MyClass

15220

2023 Google 开发者大会:Firebase技术探索与实践:从hello world 到更快捷、更经济的最佳实践

Firebase介绍 Firebase 是Google推出的一个服务平台,同时也是一个应用开发平台,可帮助你构建和拓展用户喜爱的应用和游戏。...Firebase 由 Google 提供支持,深受全球数百万企业的信任。开发人员可以利用它更快更轻松地创建高质量的应用程序。该平台拥有众多的工具和服务,其中包括实时数据库、函数、身份验证和更多。...构建时,你可以使用Google的很多后端架构,以此来加速应用的开发,比如你可以FireBase中使用Cloud Firestore,Extensions,App Check,Cloud Function...发布和监控阶段,你可以使用Crashlytics,TestLab,Performance Monitoring等。总而言之,FireBase开发,你能使用到所有可能用到的应用。...“用户”选项卡,我们应该会看到刚刚输入的用于登录应用程序的帐户信息。

31460

我们弃用 Firebase

Firestore 安全规则写起来很有趣,考虑客户端 - 服务器安全方面,这是一个可靠的模型。 开箱即用的身份验证很不错。(不过,我们看来,其内置的 Firebase 邮件验证体验很糟糕)。...Firestore 索引的创建速度非常缓慢,而且不优雅,比创建同等的 Algolia 索引花费的时间要长得多。...GCP 偏向之一:通过移除 Firebase 的特性迫使人们迁移到 GCP 在过去的几个月中,Firebase 去掉了仪表板的 Cloud Function 日志。...那看起来像是一个名为 dispatcherFunction 的函数,根据 eventName 切换到相应内部函数的调用。... CI 代码,过滤掉未更改的文件,并部署与已更改的文件相对应的函数。不用说,这两种变通方法都有很多需要改进的地方。

32.5K30

java微服务架构有哪些_漂浮服务区后端

代码可以驻留在处理钩子的函数和自定义端点中。代码Kinvey实现内部版本控制。 数据存储 Kinvey组合使用MongoDB,MongoDB提供了供应用程序使用的无模式、非SQL数据库。...该屏幕让你可以创建和设计组合(只需要创建步骤),并选择是启用还是绕过你的数据库业务逻辑。...要是应用程序处于在线状态,就从网络获取数据,并将数据存储缓存。...1.3 Google + firebase 简介: 2014年10月22日,谷歌收购了软件工具提供商Firebase,后者的产品可以方便工程师移动应用和网站之间存储和同步数据。...谷歌将提升计算技术的投资,让软件开发者通过互联网 获取计算资源。“通过将Firebase与谷歌计算平台融合,我们便可为移动应用开发者制作出最好的端对端平台。”

7.4K20

CC++:std::thread构造函数死锁问题:WIN32下不可以DllMain创建线程

最近在设计一个动态库时,全局变量创建了线程,Windows下动态库加载时导致死锁。根本的原因是Windows要求不可以动态库的DllMain函数创建线程,而我的代码结构恰好满足这个条件。...extern "C" __declspec(dllexport) void hello() { } 上面的代码A类的构造函数创建了线程,a对象被定义为全局变量,不论是作为exe还是dll执行a都会在程序启动初始化阶段被执行初始化...当在动态库执行时,这个a对象的初始化是动态库入口点(DllMain entry point),也就是DllMain函数完成的。...std::thread的构造函数创建新线程,新线程开始执行线程过程之前不能返回。...stackoverflow上,找到了同款问题:2 文中给出的建议就是绝对不要在DllMain创建线程.

86130

海外产品快速集成三方登录

其中前三种登录方式使用Firebase进行授权集成;Apple比较特殊,原本使用Firebase授权集成后改为原生SDK,后面解释;Line和Snapchat属于原生集成;邮箱和手机号登录是基于AWS和腾讯服务进行的...遇到的问题 Firebase授权登录的设置,是可以选择是否允许一个用户的多个绑定相同邮箱的平台授权创建多个用户。 ? ?...开发者账号配置 文档地址:https://developers.facebook.com/docs/facebook-login/ 开发者账号很容易申请,申请通过之后Facebook控制台创建应用进行参数配置...主机搭建,使用SES服务会有优惠政策)。...总结 本文简单讲解了多种登录方式的集成要点,执行过程还是要以官方文档为准。本文只作为一个引导,技术选型还是要以项目组已有的技术架构和三方服务合作情况作取舍。

10.6K40

第八十五期:前端的未来也许在于数据

找一个后端语言对比一下就知道了,除了基本的语法之外,js无法进行文件操作,无法创建服务,无法做进程和内存管理。当然,node是对这些功能的一个补充。...3.0实际生活的应用场景似乎我们还没有体会到。 而从实际的工作角度来看,如果我们单纯的只做前端开发。未来可以做些什么呢?好像除了做些用户界面的交互之外,什么也做不了了。...我们都写过小程序,也知道小程序有个开发的功能。数据库存在大厂提供的服务上,而且它也提供了一套数据查询的API和函数。这样我们就可以一个人单独的去开发一些应用。...开发又不单单是开发,因为它和数据的交互比较多,数据本身就是业务最具体的表现形式,所以开发我目前把它理解为数据层的开发。 数据层的业务,实际应用中表现形式为大数据。...数据部门一个公司的位置,基本上都处于核心位置。核心位置一般都很稳定。 所以前端也不应该把眼光局限于目前的这几个框架之中,框架只是工具。你会用,别人也会用,甚至别人用的比你还熟练。

2.7K40

Android Firebase 服务简介

测试实验室(Firebase Test Lab for Android) Firebase Test Lab for Android 提供了基于的基础结构,用于测试 Android 应用。... Firebase console ,可通过项目获取测试结果,包括日志、视频和屏幕截图。...,有针对性地开展广告活动,使用 Firebase Analytics 目标设备吸引您的用户群 三、FirebaseAndroid的应用 打开最新的Android studio可以看到系统为我们集成了...注册登录后选择Create Project >输入项目名称>创建> Analytics > 开始使用 ? 然后我们弹出的窗口中选择Add Analytics to your app ?...Firebase服务端的配置 首先为APP建立个后端,登陆[FireBase官网]https://www.firebase.com/,注册账号,注册完后,会有这个提示。 ?

22K90

如何使用React和Firebase搭建一个实时聊天应用

要使用React和Firebasee搭建一个实时聊天应用,需要以下几个步步骤:创建一个React项目,并安装Firebase和react-firebase-hooks作为依赖项。...2.安装Firebase和react-firebase-hookssrc文件夹下打开package.json文件,dependencies部分添加以下两行代码:"firebase": "^9.0.0...然后,终端运行以下命令来安装这两个依赖项:npm install firebase react-firebase-hooks3.使用Firebase Authenticationsrc文件夹下打开...firebase.js文件,在其中导入auth模块,并创建一个auth对象:import { auth } from "...../firebase";const auth = auth();然后,src文件夹下打开App.js文件,在其中导入useAuthState函数,并使用它来获取用户状态:import React, {

46841
领券