我正在构建一个App,我的目标是每次有人将图像上传到Firebase存储时,云功能都会调整该图像的大小。
...
import * as Storage from '@google-cloud/storage'
const gcs = new Storage()
...
exports.resizeImage = functions.storage.object().onFinalize( async object => {
const bucket = gcs.bucket(object.bucket);
const filePath = object.name;
const fileName = filePath.split('/').pop();
const bucketDir = dirname(filePath);
....
当我尝试部署此功能时,出现此错误:
Error: Error occurred while parsing your function triggers.
TypeError: Storage is not a constructor
我尝试使用“ new Storage()”或仅使用“ Storage”,但没有任何效果。
我是这里的新手,所以如果有什么我忘了给你调试的话,请告诉我。
谢谢!
google-cloud /存储:2.0.0
Node js:v8.11.4
答案 0 :(得分:21)
API documentation for Cloud Storage建议您使用require来加载模块:
const Storage = require('@google-cloud/storage');
这适用于2.x之前的Cloud Storage版本。
在2.x版本中,API发生了重大变化。您需要立即执行以下操作:
const { Storage } = require('@google-cloud/storage');
如果您想要TypeScript绑定,请考虑通过Firebase Admin SDK使用Cloud Storage。 The Admin SDK simply wraps the Cloud Storage module,并同时导出类型绑定。易于使用:
import * as admin from 'firebase-admin'
admin.initializeApp()
admin.storage().bucket(...)
admin.storage()
为您要使用的存储对象提供了参考。