2017-11-28 6 views
0

nodeJS経由でDropboxにファイルをアップロードしようとしています。 このCURLリクエストは機能します。data-リクエストのあるノードのノード

curl -X POST https://content.dropboxapi.com/2/files/upload \ 
--header "Authorization: Bearer myToken" \ 
--header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\",\"mode\": \"add\",\"autorename\": true,\"mute\": false}" \ 
--header "Content-Type: application/octet-stream" \ 
--data-binary @fileName 

私はJavaScriptコードに変換する方法がわかりません。 は、ここで私はこれまで成し遂げてきたものだ:

var request = require('request') 
    var headers = { 
     "Authorization": "Bearer " + dropboxToken, 
     "Dropbox-API-Arg": { 
          "path": "/"+fileName, //nome sul drive 
          "mode": "add", 
          "autorename": true, 
          "mute": false 
          }, 
     "Content-Type": "application/octet-stream" 
    } 
    var options = { 
     url: 'https://content.dropboxapi.com/2/files/upload', 
     method: 'POST', 
     headers: headers, 
    } 
    request(options, function (error, response, body) { 
     if (!error && response.statusCode == 200) { 
      console.log(body) 
     } 
    }); 

私は、アップロードするファイルを選択するために、この要求data-binaryオプションを含めるにはどうすればよいですか?

ありがとうございました。あなたはreadstream、その後、あなたはJavaScriptでのDropbox APIと統合しようとしている場合、それは、

fs.createReadStream('/path/to/youfile').pipe(request.post(options).on('end', (done) => { console.log('success') })); 
+0

https://stackoverflow.com/a/46495328/1757378 –

答えて

0

それはあなたのための作業のほとんどを行いますと、公式のDropbox API v2のJavaScriptのSDK:

https://github.com/dropbox/dropbox-sdk-js

そうでない場合は、あなたがSDKを使用しない場合、あなたは要求を自分で作ることができます。この場合、curlに要求のデータを提供するためのcurlパラメータは、--data-binaryパラメータです。 curlはそのデータを受け取り、a Dropbox API v2 "content-upload" style endpointのファイルデータを提供する正しい方法である/2/files/uploadなどの要求本体に入れます。

したがって、リクエスト本体の設定方法については、使用しているHTTPクライアントのドキュメントを参照してください。あなたがthe request node moduleを使用しているようですが、それはtake a body option, where you can put the request dataと表示されます。

0

まずlike-あなたの現在のヘッダーおよびオプションで要求するパイプは、我々が使用することをお勧めしますを作成することができます

+0

このように本文を挿入しようとしました。var options = { url: 'https://content.dropboxapi.com/2/files/upload' 、 ヘッダー:ヘッダー、 本文: '@' + '/ myFile.txt' } ' ただし、動作しません。 – Ford1892

+0

'@ '構文は、ローカルファイルを' curl'に指定する単なる方法です。おそらく、ノード要求モジュールには当てはまりません。 [そのドキュメント](https://github.com/request/request#requestoptions-callback)から、データを "Buffer"、 "String"、または "ReadStream"として提供する必要があります。 – Greg

関連する問題