首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CloudFlare直接创建者视频上传,TUS协议,100%后出错

CloudFlare直接创建者视频上传,TUS协议,100%后出错
EN

Stack Overflow用户
提问于 2022-09-20 05:21:08
回答 1查看 111关注 0票数 0

我正在尝试上传一个使用TUS方法(Js Client)的视频,一切看起来都很好。我会在下面张贴我的代码,看看你是否可以帮助我,请!

代码语言:javascript
复制
// /** Get one time link to upload video to cloudFlare */
router.post('/oneTimeLink', async (req, res) => {

   var config = {
      method: 'POST',
      url: `https://api.cloudflare.com/client/v4/accounts/${process.env.CLOUDFLARE_CLIENT_ID}/stream?direct_user=true`,
      headers: {
         'Authorization': `Bearer ${process.env.CLOUDFLARE_KEY_ID}`,
         'Tus-Resumable': '1.0.0',
         'Upload-Length': '1',
         'Upload-Metadata': 'maxdurationseconds NjAw',
      },
   };

   axios(config)
      .then(async function (response) {
         const location = await response.headers.location

         console.log(location)
         res.set({
            'Access-Control-Allow-Headers': '*',
            'Access-Control-Expose-Headers': '*',
            'Access-Control-Allow-Origin': '*',
            'Access-Control-Allow-Methods': '*',
            'Location': location,
         })

         res.send(true)
      })
      .catch(function (error) {
         console.log(error);
      });

})

在上传元数据中,我设置了maxduration秒NjAw,这意味着maxdurationseconds为10分钟(我正在发送一个25秒视频)。

这是我的node.js后端API。

现在在前端,我使用js客户端,如下所示。

进口:

代码语言:javascript
复制
import * as tus from "tus-js-client";

功能:

代码语言:javascript
复制
const file = state.coursesData['Module 1'][0].content.video
           
            var upload = new tus.Upload(file, {
                endpoint: 'http://localhost:8080/dev/coursesLibraryPractitioner/oneTimeLink',
                chunkSize: 250 * 1024 * 1024,
                metadata: {
                    filename: file.name,
                    filetype: file.type
                },
                onError: function (error) {
                    console.log("Failed because: " + error)
                },
                onProgress: function (bytesUploaded, bytesTotal) {
                    var percentage = (bytesUploaded / bytesTotal * 100).toFixed(2)
                    console.log(bytesUploaded, bytesTotal, percentage + "%")
                },
                onSuccess: function () {
                    console.log("Download %s from %s", upload.file.name, upload.url)
                }
            })

            upload.start()

端点指向我的后端服务器,它在位置头中返回URL。

现在,当我触发这个函数时,就会发生这种情况。

后端路由执行时不会出错,Cloudflare仪表板会创建一个新的空视频,根据文档,这是很棒的。

在前端日志中:

独立于块状,有时百分比达到100%,但从不保存视频。我不知道那补丁请愿书是从哪来的。

请让我为我工作的公司这个过程,他们将获得一个比我的更强劲的订阅,现在设定为每月1000分钟的测试。

谢谢您的帮助!!

EN

回答 1

Stack Overflow用户

发布于 2022-10-29 16:03:26

上传结束时的最后一块应该是256 The倍数。

尝试将250 * 1024 * 1024更改为256 * 1024 * 1024

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73781951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档