我正在使用转码器 API 将视频格式化为 1:1 的宽高比。源视频文件存储在 Firebase 存储桶中。生成转码文件后,它没有访问令牌,因此要查看该文件,我可以使用控制台手动创建访问令牌。这样我就可以获得用于访问转码文件的 URL。
我想在我的云函数中为下图中的 ChromeCast.mp4 文件生成下载 URL:
当我运行以下代码时,我收到“错误:无效的 HTTP 方法/URL 对”。在我的日志中使用以下代码:
// Create a download URL for transcoded file
const { getStorage, getDownloadURL } = require('firebase-admin/storage');
var newBucket = `*MY-BUCKET-NAME*.appspot.com/transcoder/`
var newName = `ChromeCast.mp4`;
console.log(`newBucket: ${newBucket}`);
console.log(`newName: ${newName}`);
const fileRef = getStorage().bucket(`${newBucket}`).file(`${newName}`);
const downloadURL= await getDownloadURL(fileRef);
console.log(downloadURL);
“const downloadURL=await getDownloadURL(fileRef)”行正在生成错误。我尝试了存储桶名称的以下变体:
var newBucket = `*MY-BUCKET-NAME*.appspot.com/transcoder%2F`
var newBucket = `*MY-BUCKET-NAME*.appspot.com/transcoder`
但我仍然遇到同样的错误。
我还尝试删除以下代码变体,但得到“错误:未找到”
var newBucket = `*MY-BUCKET-NAME*.appspot.com`
var newName = `/transcoder/ChromeCast.mp4`;
const fileRef = getStorage().bucket(`${newBucket}`).file(`${newName}`);
const downloadURL= await getDownloadURL(fileRef);
我使用硬编码存储桶进行测试。 我想生成一个下载 URL,以便我可以使用新 URL 更新文档,将该 URL 替换为原始视频文件
字符串“transcoder”不是您的存储桶名称的一部分。 它是您尝试使用的对象的路径的一部分。 你的变量应该是这样的:
var newBucket = `*MY-BUCKET-NAME*.appspot.com`
var newName = `/transcoder/ChromeCast.mp4`;