FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

ファイルストア/データストアへの保存で E403001 が発生する場合

f:id:mbaasdevrel:20180913163950p:plain

ファイルストアへのファイルをアップロードやデータストアへの保存の際にエラーが発生する場合があります。その際の確認方法と、対処法を紹介します。

コード例

例えば Node.js の場合は以下のようにしてファイルをアップロードしようとしたとします。

var NCMB = require('ncmb');
var apikey = "YOUR_APPLICATION_KEY";
var clientkey = "YOUR_CLIENT_KEY";
var ncmb = new NCMB(apikey, clientkey);

var fs = require('fs');
fs.readFile('index.js', function (err, data) {
  if (err) throw err;
  var name = "index.js";
  ncmb.File.upload(name, data)
      .then(function(data){
        // アップロード後処理
       })
      .catch(function(err){
        // エラー処理
        console.log(err);
       });
});

例えば上記のコードを実行してエラーが出たとします。エラーメッセージは以下のようなものです。

{
  "code":"E403001",
  "error":"No access with ACL."
}

エラーの理由

これはクラスのパーミッション設定によるものです。今回の例であれば、ファイルストアの「クラスの編集」をクリックします。

f:id:mbaasdevrel:20180913164120p:plain

さらにパーミッションの設定をクリックします。

f:id:mbaasdevrel:20180913164159p:plain

そうするとクラスのパーミッションが確認できます。今回の場合、全員に対して作成や削除権限がなかったために発生したエラーになります。

f:id:mbaasdevrel:20180913164209p:plain

正しくパーミッションを与えるか、パーミッションを削除してしまえば発生しません。

まとめ

このエラーはAPI呼び出しの場合に発生し、管理画面からでは発生しませんので注意してください。

同様の設定はデータストアのクラス単位でも設定できます。データストアやファイルストアを操作しようとして E403001 が発生したら、クラスのパーミッション設定をチェックしてください。

データストア (Monaca) : アクセス権限設定 | ニフクラ mobile backend

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。