【问题标题】:Vimeo API: Upload from a File Using a FormVimeo API:使用表单从文件上传
【发布时间】:2017-05-05 16:35:51
【问题描述】:

我按照 vimeo node.js api 的文档上传文件。这很简单,我可以通过直接在节点中运行它来运行它,但它需要我传递我要上传的文件的完整路径。代码在这里:

function uploadFile() {
    let file = '/Users/full/path/to/file/bulls.mp4';
    let video_id; //the eventual end URI of the uploaded video

    lib.streamingUpload(file, function(error, body, status_code, headers) {
       if (error) {
       throw error;
    }

    lib.request(headers.location, function (error, body, status_code, headers) {
      console.log(body);
      video_id = body.uri;
      //after it's done uploading, and the result is returned, update info
      updateVideoInfo(video_id);
    });
    }, function(upload_size, file_size) {
       console.log("You have uploaded " + 
       Math.round((upload_size/file_size) * 100) + "% of the video");
  });
}

现在我想集成到我的react app中生成的一个表单中,除了evt.target.files[0]的结果不是完整路径,结果是这样的:

File {name: "bulls.mp4", lastModified: 1492637558000, lastModifiedDate: Wed Apr 19 2017 14:32:38 GMT-0700 (PDT), webkitRelativePath: "", size: 1359013595…}

只是为了它,我将它输入到我已经工作的上传功能中,但由于指定的原因它没有工作。我错过了什么吗?如果不是,我只想澄清我实际上必须做什么。所以现在我正在查看官方的 Vimeo 指南,并想确保这是正确的道路。见:https://developer.vimeo.com/api/upload/videos

所以,如果我没看错的话,您会提出多个请求来实现相同的目标吗?

1) 对 https://api.vimeo.com/me 执行 GET 以找出他们拥有的剩余上传数据。

2) 向https://api.vimeo.com/me/videos 发帖以获得上传票证。如果我想要可恢复的上传,例如 vimeo streamingUpload() 函数提供的上传,请使用 type: streaming

3) 对https://1234.cloud.vimeo.com/upload?ticket_id=abcdef124567890 执行 PUT

4) 对 https://1234.cloud.vimeo.com/upload?ticket_id=abcdef124567890 执行 PUT,但没有文件数据和标题 Content-Range: bytes */* 任何时候我想检查上传的字节。

听起来对吗?或者你可以简单地使用一个表格,我在某个地方弄错了。让我知道。谢谢。

【问题讨论】:

  • 如何在 http 调用中包含身份验证?

标签: node.js file-upload vimeo-api


【解决方案1】:

此项目中有一些示例代码可能值得一试:https://github.com/websemantics/vimeo-upload

您对流媒体系统的描述基本正确,但我想澄清最后两点。

3) 在此步骤中,您应该使用描述文件完整大小的 Content-Length 标头向该 URL 发出 PUT 请求(如此处所述:https://developer.vimeo.com/api/upload/videos#upload-your-video

4) 在此步骤中,您检查上传字节的原因是您是否已完成上传,或者您在 PUT 请求中的连接是否断开。我们尽可能多地保存字节,我们将在步骤 4 中响应请求。我们收到了多少字节。这使您可以从中断的地方继续执行第 3 步,而不是从一开始。

为了稳定性,我们强烈推荐可恢复的上传器,但如果您希望简单,我们确实提供了一个使用 HTML 表单的简单 POST 上传器。相关文档在这里:https://developer.vimeo.com/api/upload/videos#simple-upload

【讨论】:

    猜你喜欢
    • 2020-10-14
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2016-01-12
    • 1970-01-01
    相关资源
    最近更新 更多