ファイルストアへのファイルをアップロードやデータストアへの保存の際にエラーが発生する場合があります。その際の確認方法と、対処法を紹介します。
コード例
例えば 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." }
エラーの理由
これはクラスのパーミッション設定によるものです。今回の例であれば、ファイルストアの「クラスの編集」をクリックします。
さらにパーミッションの設定をクリックします。
そうするとクラスのパーミッションが確認できます。今回の場合、全員に対して作成や削除権限がなかったために発生したエラーになります。
正しくパーミッションを与えるか、パーミッションを削除してしまえば発生しません。
まとめ
このエラーはAPI呼び出しの場合に発生し、管理画面からでは発生しませんので注意してください。
同様の設定はデータストアのクラス単位でも設定できます。データストアやファイルストアを操作しようとして E403001 が発生したら、クラスのパーミッション設定をチェックしてください。