使用Node.js将文件从string上传到Box API

我正在使用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) { // ... }); 

现在,我试图上传到根文件夹,如果我理解正确,具有“0”的ID。

真的不知道的是什么值给“文件名”。 我没有一个真正的文件来读取,但我有一个冗长的string表示我想上传的文件内容。

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

对于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); 
 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')));