我正在使用Box的API版本2并尝试上传文件。我有Oauth 2全部工作,但我在实际上传时遇到了麻烦。
我正在使用Node.js和Express,以及“请求”模块。我的代码看起来像这样:
request.post({
url: 'https://upload.box.com/api/2.0/files/content',
headers: {
Authorization: 'Bearer ' + authToken
},
form: {
filename: ????,
parent_id: '0'
}
}, function (error, response, body) {
// ...
});
现在,我正在尝试上传到根文件夹,如果我理解正确的话,其ID为“0”。
我真的不确定是什么值给“文件名”。我没有要读取的真实文件,但我有一个冗长的字符串表示我要上传的文件内容。
我最好如何上传此“文件”?
答案 0 :(得分:1)
对于Box,我相信您希望使用请求多部分/表单数据实现。 看起来应该是这样的:
var request = require('request');
var fs = require('fs');
var r = request.post(...);
var form = r.form();
form.append('filename', new Buffer("FILE CONTENTS"), {filename: 'file.txt'});
form.append('parent_id', 0);
答案 1 :(得分:1)
var fs = require('fs');
var request = require('request');
var path = require('path');
function requestCallback(err, res, body) {
console.log(body);
}
var accessToken = 'SnJzV20iEUw1gexxxxvB5UcIdopHRrO4';
var parent_folder_id = '1497942606';
var r = request.post({
url: 'https://upload.box.com/api/2.0/files/content',
headers: { 'Authorization': 'Bearer ' + accessToken }
}, requestCallback);
var form = r.form();
form.append('folder_id', parent_folder_id);
form.append("filename", fs.createReadStream(path.join(__dirname, 'test.mp4')));