NIFCLOUD-mbaas / UserCommunity

ニフクラ mobile backend ユーザーコミュニティ
https://mbaas.nifcloud.com/
81 stars 18 forks source link

カスタムスクリプトでファイルをダウンロード失敗 #1362

Open agilet-tou opened 1 year ago

agilet-tou commented 1 year ago

ファイルダウンロード機能をスクリプトで実現したいです。実現方式を教授いただきたいです?

下記のスクリプトで試しましたが、エラーが発生しました。

`

// ダウンロードファイル名を設定
var fileName = req.body.fileName;

// ファイルダウンロードロジック実行
ncmb.File.download(fileName,'blob')
.then(function(blob){
  // var buff = new Buffer(data, 'binary');
  // res.status(200)
  res.set('Content-Type', 'application/zip');
  res.status(200).send(blob);
}).catch((err)=> {
  resObj["error_code"] = "ES004_004";
  resObj["result"] = "1";
  res.status(500).json(resObj);
})

` error

{ "error": "{\"status\":200,\"headers\":{\"Content-Type\":\"application/json\"},\"body\":\"{\\\"type\\\":\\\"Buffer\\\",\\\"data\\\":[80,75,3,4]", "status": 500, "code": "E500001" }

goofmint commented 1 year ago

このエラーはどこで起こっているのでしょうか?上記コードでは ES004_004 としているのに、エラーメッセージは E500001 となっているので、該当コード部分ではないところでエラーになっているように見えます。

agilet-tou commented 1 year ago

「res.status(200).send(blob)」内部でエラーが発生していると考えられます。

goofmint commented 1 year ago

そこでエラーだとすると、NCMBというよりもスクリプト機能で使っているExpressの使い方の問題かと思います。バイナリ送信の方法は正しいでしょうか?

agilet-tou commented 1 year ago

NCMB標準APIのようにバイナリを返却してほしいですけど、実現方法は分かりません。