File upload Vimeo API:使用可恢复方法上载视频文件

File upload Vimeo API:使用可恢复方法上载视频文件,file-upload,vimeo-api,tus,File Upload,Vimeo Api,Tus,我遵循VimeoAPI关于可恢复上传的指南()。 我在第一个请求后得到一个响应,但在第二个请求后得到一个未定义的响应(步骤2.上传视频文件)。 该指南告诉我们将视频文件的二进制数据从upload.upload\u链接修补到URL。我正在使用readAsBinaryString()将视频文件转换为二进制数据(我也尝试了readAsArrayBuffer(),但结果相同。我可能做错了什么? 代码如下: var reader = new FileReader(); $.ajax({ 'url':

我遵循VimeoAPI关于可恢复上传的指南()。 我在第一个请求后得到一个响应,但在第二个请求后得到一个
未定义的
响应(步骤2.上传视频文件)。 该指南告诉我们将视频文件的二进制数据从upload.upload\u链接修补到URL。我正在使用
readAsBinaryString()
将视频文件转换为二进制数据(我也尝试了
readAsArrayBuffer()
,但结果相同。我可能做错了什么? 代码如下:

var reader = new FileReader();

$.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 ' + accessToken
  },
  "data": JSON.stringify({ 
    "upload" : {
      "approach" : "tus",
      "size" : fileSize

    }
  }),
  'success': function (result) {
    $.ajax({
      'url': result.upload.upload_link,
      'type': 'PATCH',
      'headers': {
        'Tus-Resumable': '1.0.0',
        'Upload-Offset': 0,
        'Content-Type': 'application/offset+octet-stream'
      },
      'data': reader.readAsBinaryString(fileContent),
      'success': function (result) {
        console.log(result)
      }
    });
  }
});

我可以在我的ReactJs应用程序中实现此功能。看起来您缺少reader.onload()方法-

我正在将reader.readAsArrayBuffer的结果保存到state.binaryData。然后我将binaryData作为数据传递到我的axios/fetch请求中。它正在工作,我成功上传了视频

const reader = new FileReader();
const fileSize = e.target.files[0].size;
reader.onload = r => {
  this.setState({ binaryData: r.target.result, fileSize });
};
reader.readAsArrayBuffer(e.target.files[0]);

我现在也在用同样的方法。我想当时调用Patch时,不确定文件的二进制数据是否已转换

因此,为了确保您必须将该调用放入
reader.onload
。因此,必须确保二进制数据

readAsBinaryString
已弃用。因此您可以使用
readAsArrayBuffer