Open ncmbsupport opened 1 year ago
お問い合わせいただいた件について回答いたします。
アプリからスクリプトを実行する際にリクエストボディにアップロードファイ ルのバイナリを指定できますか。
お問い合わせ頂いた事項について弊社で検証し、バイナリを指定出来る事を確認いたしました。 以下に検証に使用したコードを記載いたします。
const fs = require('fs');
let binary_file = fs.readFileSync("test_file.bin");
var NCMB = NCMB || require("ncmb");
var ncmb = new NCMB(apikey, clientkey);
ncmb.Script
.data({"name": "name", "file": binary_file }) // リクエストボディを指定
.exec("POST", "test.js")
.then(function(res){
// 実行後処理
console.log("script run: Success\n" +JSON.stringify(res))
})
.catch(function(err){
// エラー処理
console.log("script run: Failed\n" + JSON.stringify(err))
});
実行する側のスクリプト(node.jsを想定)でどのように受け取るのかについて も教えて下さい。
スクリプト側でファイルを受け取る方法は、以下のコード(上記コード内で指定した test.jsの中身)を参考いただければと存じます。
test.js
module.exports = function(req, res) {
if (req.body.file) {
var buf = new Buffer(req.body.file, 'binary');
res.send(buf.toString('utf8'));
res.status(200);
} else {
res.status(500);
}
}
以上でございます。今後ともよろしくお願いいたします。
form-dataの形でファイルをアップロードした場合、以下のエラーが発生しました。 原因を教えていただけませんか
@agilet-tou その部分のコードを見ないとなんとも言えません もしSDKを使わずに実装しているのであれば、APIを参考に実装してください
スクリプト機能を利用していますが、アプリからスクリプトを実行する際にリクエストボディにアップロードファイルのバイナリを指定できますか。また、実行する側のスクリプト(node.jsを想定)でどのように受け取るのかについても教えて下さい。