我有一个项目,该项目使用Firebase工具将图像存储在Firebase存储中,并将各种数据存储在实时数据库中。
我具有通过数据库更改触发的云功能。在此函数内部,我需要访问特定文件的元数据以获取一些信息(我不需要修改元数据)。
这就是我访问文件的方式。
const gcs = require('@google-cloud/storage')();
...
const bucket = admin.storage().bucket();
...
myFile = bucket.file("images/" + imagePath);
如何获取元数据?这样的天真的解决方案:
myFile.metadata;
or
myFile.getMetadata();
不起作用。 我认为应该有一个简单的内置方法,并且非常惊讶地发现很难在网上找到解决方案。
答案 0 :(得分:1)
根据documentation(Google Cloud Storage Node.js客户端的客户端API参考),您应使用getMetadata()
,如下所示:
const gcs = require('@google-cloud/storage')();
...
const bucket = admin.storage().bucket();
...
myFile = bucket.file("images/" + imagePath);
myFile.getMetadata().then(function(data) => {
const metadata = data[0].metadata;
});
请注意,也可以按以下方式调用此方法:myFile.getMetadata(function(err, metadata, apiResponse) {});
。
但是,由于在Cloud Function中执行异步工作时必须返回Promise(请参阅原因here),因此应省略回调并使用方法返回的Promise。