首页
学习
活动
专区
工具
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中上传一张图片时,云函数将自动创建一个方形缩略图,并将其保存在相同的存储桶中。你可以根据实际需求修改代码中的缩略图尺寸和命名规则。

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

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

相关·内容

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券