2017-05-05 75 views
0

vimeo node.js apiのドキュメントに従ってファイルをアップロードしました。非常にシンプルで、アップロードするファイルの完全なパスを渡す必要があることを除いて、ノードで直接実行することで作業しています。コードはここにある:Vimeo 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"); 
    }); 
} 

は、今私は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にPOSTしてください。私は、このようなVimeoのstreamingUpload()関数

3によって提供されるものとして再開可能なアップロードをしたい場合)type: streamingを使用https://1234.cloud.vimeo.com/upload?ticket_id=abcdef124567890

4にPUTを行います)https://1234.cloud.vimeo.com/upload?ticket_id=abcdef124567890になく、ファイルデータとヘッダContent-Range: bytes */*いつでもなくてPUTを実行します。アップロードされたバイトをチェックしたい

サウンドが正しいですか?あるいは単にフォームを使うことができますか?私はそれをどこかで間違っています。お知らせ下さい。ありがとう。

+0

httpコールに認証を含めるにはどうすればいいですか? –

答えて

1

このプロジェクトには、チェックアウトする価値のあるいくつかのコード例があります:https://github.com/websemantics/vimeo-upload

あなたの説明は、ストリーミングシステムではほぼ正しいですが、最後の2つの点を明確にしたいと思います。このステップでhttps://developer.vimeo.com/api/upload/videos#upload-your-video

4)は、理由あなた:

3)このステップでは、ここで説明したようにファイルのフルサイズを記述するContent-Lengthヘッダ(とそのURLにPUT要求を行うべきですあなたがアップロードを完了した場合、またはPUT要求のあなたの接続が死んでいる場合、アップロードされたバイトをチェックしています。可能な限り多くのバイトを保存し、ステップ4の要求に応答して、受信したバイト数を返します。これにより、最初のステップの代わりに中断したステップ3を再開できます。

安定性のために、再開可能なアップローダを強くお勧めしますが、簡単にお探しの場合は、HTMLフォームを使用する簡単なPOSTアップローダを提供しています。それのためのドキュメントはここにあります:https://developer.vimeo.com/api/upload/videos#simple-upload

関連する問題