这里是第一个问题。
我正在尝试编写一个火碱云函数来压缩文件。我在网上浏览了很多示例,但我的代码一直卡在两点上。
1.const {gcs} =require('@google-cloud/storage')();
当我在 require 中使用此结构时,出现以下错误
类型错误:require(...( 不是一个函数
如果我将其更改为const {gcs} =require('@google-cloud/storage');
错误消失了,但显然对象没有初始化,因为当我尝试像这样访问它时我会收到此错误
类型错误:无法读取未定义的属性"存储桶" at exports.onfilechangecompressor.functions.storage.object.onFinalize.object (/user_code/索引.js:21:27( at cloudFunctionNewSignature (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:105:23( at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:135:20( at/var/tmp/worker/worker.js:733:24 在process._tickDomainCallback(内部/进程/next_tick.js:135:7(
这是我像这样使用 gcs 的行
const destBucket = gcs.bucket(bucket);
其中 bucket 是返回的对象.bucket(对象由 onFinalize 返回(。
有人可以告诉我如何初始化存储以便它工作并返回一个有效的对象。
我的节点.js版本是 8.12.0 Firebase 版本是 5.1.1
2.x 的文档显示了这一点:
const {Storage} = require('@google-cloud/storage');
您在要求之后添加()
,发现该要求不正确。
然后,您继续像这样初始化它:
// Your Google Cloud Platform project ID
const projectId = 'YOUR_PROJECT_ID';
// Creates a client
const storage = new Storage({
projectId: projectId,
});
如果您在 Cloud Functions 或其他 Google 环境中运行,则可能不需要指定项目 ID。
之后,您可以获取对默认存储桶的引用:
storage.bucket()
您还可以使用管理员 SDK 调用相同的云存储 API:
const admin = require('firebase-admin');
admin.initializeApp();
const storage = admin.storage();
storage.bucket();