错误:在转码器 API 生成的文件上使用 getDownloadURL 时出现无效的 HTTP 方法/URL 对

问题描述 投票:0回答:1

我正在使用转码器 API 将视频格式化为 1:1 的宽高比。源视频文件存储在 Firebase 存储桶中。生成转码文件后,它没有访问令牌,因此要查看该文件,我可以使用控制台手动创建访问令牌。这样我就可以获得用于访问转码文件的 URL。

我想在我的云函数中为下图中的 ChromeCast.mp4 文件生成下载 URL: enter image description here

当我运行以下代码时,我收到“错误:无效的 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 替换为原始视频文件

javascript firebase google-cloud-functions google-cloud-storage
1个回答
0
投票

字符串“transcoder”不是您的存储桶名称的一部分。 它是您尝试使用的对象的路径的一部分。 你的变量应该是这样的:

var newBucket = `*MY-BUCKET-NAME*.appspot.com`
var newName = `/transcoder/ChromeCast.mp4`;
© www.soinside.com 2019 - 2024. All rights reserved.