2

我正在使用 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”。

真的不确定给“文件名”赋予什么价值。我没有要读取的真实文件,但我确实有一个长字符串表示我要上传的文件内容。

我应该如何最好地上传这个“文件”?

4

2 回答 2

1

对于 Box,我相信您想使用 requests 多部分/表单数据实现。它应该看起来像这样:

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);
于 2013-04-25T02:41:43.503 回答
0
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')));
于 2014-01-21T06:49:41.840 回答