首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Tus协议恢复文件上传

使用Tus协议恢复文件上传
EN

Stack Overflow用户
提问于 2018-08-07 12:30:18
回答 1查看 1.9K关注 0票数 3

我正在开发一个使用Laravel的网站,我使用图-杰-客户直接将文件上传到Vimeo,而无需经过我的服务器。上传工作很完美。

但是,假设上传达到了44%,然后用户刷新了浏览器.据我所知,当用户再次开始上传相同的文件时,它应该从44%继续上传。但这并没有发生,而是从一开始就开始了。

我认为这是因为当我向Vimeo发送API请求以获得upload_link ( 第一步 )时,每当用户刷新页面时,它都会给我一个新的upload_link

代码语言:javascript
复制
 // Upload process start 
  var self = this;

  // Send request to server to get (upload.upload_link) from Vimeo API (Step 1)
  var uploadEndPoint = self.getUploadEndPoint();

  // Start uploading ( Step 2 )
  self.uploader = new tus.Upload(file, {
    uploadUrl: uploadEndPoint,
    retryDelays: [0, 1000, 3000, 5000],
    metadata: {
      filename: file.name,
      filetype: file.type
    },
    resume: true,
    uploadSize: file.size,
    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",
        self.uploader.file.name,
        self.uploader.url
      );
    }
  });

处理这个问题的最佳方法是什么,这样用户就可以继续上传了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-11 17:27:59

我所做的:

  1. 设置Laravel后端端点以获取下载链接
  2. 对于第一个端点请求,从后端请求到Vimeo,并在后端保存上传链接
  3. 有关进一步的请求,请检查客户端是否要下载相同的文件(按名称和大小,或者按散列),如果是,请返回已保存的上载链接,如果不请求新文件的话

通过这样做,我解决了两个问题:

  • 保存上传链接的记录,直到文件未完全上载为止。
  • 在服务器上保持我的永久Vimeo访问令牌不受影响,只在客户端上传链接
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51726862

复制
相关文章

相似问题

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