data-Binary请求nodejs

时间:2017-11-28 19:54:19

标签: javascript node.js dropbox

我正在尝试通过nodeJS将文件上传到dropbox。 此CURL请求有效。

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选项以选择要上传的文件?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以创建一个读取流,然后通过当前标头和选项(例如

)将其传送给请求
fs.createReadStream('/path/to/youfile').pipe(request.post(options).on('end', (done) => { console.log('success') }));