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 の場合、リクエストのマルチパート/フォームデータ実装を使用したいと考えています。次のようになります。

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 に答える