javascript - 以编程方式获取 Google Cloud Platform 自定义元数据“firebaseStorageDownloadToken”
问题描述
我正在使用 Firebase 云存储。
我知道如何使用在客户端 javascript 上运行的 Firebase SDK 函数获取下载文件 (tags.txt) 的 URL:
storage.ref('tags.txt').getDownloadURL().then((url) => {
console.log(url);
});
我想从 Node.JS 获取 downloadURL。我知道 Node.JS 不存在此功能
但是,在 Google Cloud Platform 中,您可以获得以下键/值对: firebaseStorageDownloadTokens : 0ea9a60a-7719-4c6b-9cb5-7fcf69d7c633,该值是您想要的令牌。通过这个令牌,我可以轻松地构建我需要的 downloadURL。
到达那里的路径是:
云存储/“存储桶名称”/存储桶详细信息/tags.txt/编辑元数据/自定义元数据。
我尝试使用此代码来访问此元数据:
async function getBucketMetadata() {
const bucketName = "gs://tags.appspot.com";
try {
// Get Bucket Metadata
let metadata = await admin.storage().bucket(bucketName).file('tags.txt').getMetadata();
console.log(metadata)
}
catch (err) {
console.log(err.message)
}
}
我得到了键/值(虽然不是真正的项目)信息,例如:
bucket:'tags.appspot.com'
contentType:'text/plain'
crc32c:'Y1Sdxw=='
etag:'CI1EETD18Co9vECEAE='
generation:'162694124484794756'
id:'tags-admin.appspot.com/tags.txt/162694431484794756'
kind:'storage#object'
md5Hash:'P1YSFER4xSf5p0/KWrdQWx1z1Lyg=='
mediaLink:'https://storage.googleapis.com/download/storage/v1/b/tags-admin.appspot.com/o/tags.txt?generation=162694443184794756&alt=media'
metageneration:'1'
name:'tags.txt'
selfLink:'https://www.googleapis.com/storage/v1/b/tags-admin.appspot.com/o/tags.txt'
size:'5211247'
storageClass:'STANDARD'
timeCreated:'2021-07-22T09:01:24.862Z'
timeStorageClassUpdated:'2021-07-22T09:01:24.862Z'
updated:'2021-07-22T09:01:24.862Z'
但没有关于我想要的键/值对:firebaseStorageDownloadTokens:0ea9a60a-7719-4c6b-9cb5-7fcf69d7c633
如果可以在 Google Cloud Platform 上看到键/值,我相信也可以通过一些代码访问键/值。
感谢您的帮助。
解决方案
我混淆了两个项目。我重新尝试了它,它的工作非常好。使用这种方法,我可以检索文件令牌并在后端围绕它构建文件 URL。不再需要前端函数 getDownloadURL()。
还是要谢谢你的帮助。
代码变为:
async function getBucketMetadata() {
const bucketName = "gs://tags.appspot.com";
try {
// Get Bucket Metadata
let metadata = await admin.storage().bucket(bucketName).file('tags.txt').getMetadata();
console.log(metadata[0].metadata.firebaseStorageDownloadTokens)
}
catch (err) {
console.log(err.message)
}
}
推荐阅读
- excel - 将访问查询导出到 VBA,条件格式允许 .AddColorScale,但不允许 .Add
- java - JPA 实体创建
- security - 有人可以欺骗 websocket 连接吗?
- python - 为什么更改 BASE_DIR 后我的 django 服务器无法运行?
- sql - 将输出子句与 CTE 结合使用会引发无法绑定多部分标识符的错误
- python - 将用户名和密码传递给 Robot Framework 命令行变量时遇到问题
- r - 如何将图像放置在作为函数调用的闪亮应用程序中?
- cmake - CMake INCLUDE_DIRS 变量不包含正确的路径
- java - 发送到 Firebase 时,Android R8 会重复自定义模型类的字段
- python - 使用 Python 的 argparse.ArgumentParser 自定义概要变量/字段名称