【发布时间】:2021-09-30 06:30:25
【问题描述】:
我正在使用 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/EDIT METADATA/自定义元数据。
我尝试使用此代码来访问此元数据:
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 上看到键/值,我相信也可以通过一些代码访问键/值。
感谢您的帮助。
【问题讨论】:
-
我认为您无法为现有对象检索这些令牌,但如果您在上传文件时添加它们,那么您可以设置自己的令牌。
标签: javascript google-cloud-storage firebase-storage