首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tus上传到Vimeo不会恢复,并且总是重新启动

tus上传到Vimeo不会恢复,并且总是重新启动
EN

Stack Overflow用户
提问于 2020-08-14 10:42:54
回答 1查看 351关注 0票数 0

我正在使用tus协议在vimeo上上传视频,而且视频上传工作正常,但是如果我们暂停并继续上传,我可能做错了什么?这是代码.

代码语言:javascript
复制
$(document).on("click", "button", function (e) {
        var file = $(this).prop("files")[0];
        $.ajax({
            'url': 'https://api.vimeo.com/me/videos',
            'type': 'POST',
            'headers': {
                'Accept': 'application/vnd.vimeo.*+json;version=3.4',
                'Content-Type': 'application/json',
                'Authorization': 'bearer ' + 'token'
            },
            "data": JSON.stringify({
                "upload": {
                    "approach": "tus",
                    "size": file.size   
                }
            }),
            'success': function (result) {
                var upload = new tus.Upload(file, {
                    uploadUrl: result.upload.upload_link,
                    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)
                    }
                })

                // Add listeners for the pause and unpause button
                var pauseButton = document.querySelector("#pauseButton")
                var unpauseButton = document.querySelector("#unpauseButton")
                pauseButton.addEventListener("click", function () {
                    upload.abort()
                })
                unpauseButton.addEventListener("click", function () {
                    upload.start()
                })

        // Start the upload
        upload.start()

            },
            'error': function (result) {   
            }
        });
EN

回答 1

Stack Overflow用户

发布于 2021-01-31 07:31:17

一个迟来的回复,但我自己遇到了这个问题,我想我应该分享我是如何解决它的其他人谁偶然看到这一页在未来。

我必须在我的“新的chunkSize ()”中设置tus.Upload变量。默认情况下,chunkSize是无限的,似乎Vimeo的“上传-偏移”响应只针对已完成的块,因此在上传完成之前没有完成的块。

通过将其设置为5000000 (5mb),我可以暂停并成功地继续上传。在恢复时,它会在最后一个完成的块重新启动,因此对于一个小文件(例如,30 at ),在恢复后可能会出现几个百分比的明显下降。对于一个更大的文件( 5mb占的百分比较小)来说,这一点就不那么明显了,或者您可以将chunkSize设置为1mb,尽管chunkSize越小,上传速度就越慢,因为http请求的数量增加了。

代码语言:javascript
复制
   var upload = new tus.Upload(file, {
            chunkSize: 5000000,
            uploadUrl: result.upload.upload_link,
            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)
            }
   })

希望这能帮上忙。

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

https://stackoverflow.com/questions/63411222

复制
相关文章

相似问题

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