私は、npm の request パッケージを使用して、meteor.js restivus パッケージを使用して作成された REST API にファイル バッファーを投稿しています。API にポストする私の node.js クライアント コードは次のとおりです。
url = ' http://localhost:3000/api/v1/images/ ';
fs.readFile('./Statement.odt', function read(err, data) {
if (err) {
throw err;
}
console.log(data); //At this stage the file is still a buffer - which is correct
var file = data;
request.post({
uri: url,
headers: {
'X-User-Id': userId,
'X-Auth-Token': authToken
},
form: {
file: file, //Inside the request.post the file is converted to binary encoding
name:"Statement.odt"
}
}, function(err, httpResponse, body) {
if (err) {
return console.error('post failed:', err);
}
console.log('Get successful! Server responded with:', body);
});
});
ここでの問題/問題は、request.post 内でファイルがバイナリ エンコードされた blob に変換されることです。上記のコードの「request.post」の最初の引数の「form:」プロパティで私のコメントを参照してください。これは、ファイルがバイナリ エンコード ファイルではなくバッファとして必要な meteor.js サーバーで問題になります。(情報: Ostr-io/files の GridFS を使用してファイルを保存しています - ファイルがバッファである必要があります)
ファイルをエンコードされた文字列として渡す以外に方法がない場合、そのエンコードされたブロブを、meteor.jsを使用/話しているバッファサーバー側に変換する方法はありますか? 助けてください!
さらに情報が必要な場合は、お知らせください。提供します。