Javascript 请求节点中的数据二进制
我正试图通过nodeJS上传一个文件到dropbox。 这个CURL请求有效Javascript 请求节点中的数据二进制,javascript,node.js,dropbox,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\": tru
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)
}
});
如何在此请求中包含数据二进制
选项以选择要上载的文件
谢谢。您可以创建一个readstream,然后使用当前的头文件和选项(如-
fs.createReadStream('/path/to/youfile').pipe(request.post(options).on('end', (done) => { console.log('success') }));
首先,如果您试图在JavaScript中与Dropbox API集成,我们建议使用官方Dropbox API v2 JavaScript SDK,因为它将为您完成大部分工作: 否则,如果您不想使用SDK,您可以自己发出请求。在这种情况下,
--data binary
参数是curl
参数,用于向curl
请求提供数据curl
然后获取该数据并将其放入请求体中,这是为提供文件数据的正确方法,例如
因此,您应该查看正在使用的HTTP客户机的文档,以获取有关如何设置请求主体的信息。看起来您正在使用,这似乎是。我尝试像这样插入正文
var options={url:'https://content.dropboxapi.com/2/files/upload,headers:headers,body:'@'+'/myFile.txt'}
但它不起作用。@
语法只是将本地文件指定为curl
。这可能不适用于节点请求模块。从中,您应该以“Buffer
、String
或ReadStream
”的形式提供数据。