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

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

Parse Serverでファイルを保存する(JavaScript SDKの実装)

NCMBは2024年3月末をもって終了します

Parse ServerはオープンソースのmBaaS(mobile Backend as a Service)です。NCMBと仕組みが似ており、移行先としてお勧めしています。自分で立てるか、Parse Serverのクラウドサービスも利用できます。

Parse Serverに用意されているストレージ機能は、NCMBとは若干異なります。ファイルオブジェクトをデータストアと紐付ける点が異なるので注意が必要です。

この記事ではJavaScript SDKを例に、Parse Serverでファイルを保存する方法を紹介します。

Parse Serverの設定

ファイルアップロード機能は、デフォルトではユーザー登録したユーザーのみ利用可能です。もし誰でも可能にする場合には、 enableForPublic を有効にしてください。

{
  "fileUpload": {
    "enableForPublic": true, // 誰でもファイルアップロード可能
    "enableForAnonymousUser": true, // 匿名認証ユーザーでもファイルアップロード可能
    "enableForAuthenticatedUser": true // 認証済みユーザーはファイルアップロード可能
    }
}

JavaScript SDKでの実装

まずファイルオブジェクトを作成します。

const file = e.target.files[0];
const parseFile = new Parse.File(file.name, file);

この parseFile をデータストアに紐付けて保存します。

const item = new Parse.Object("Item");
item
    .set("name", "Joe Smith")
    .set("file", parseFile)
await item.save();

データの取得

データは url メソッドを用いて保存先のURLを取得できます。さらにfetchを使うことで、データの内容を取ることもできるでしょう

const photo = item.get("file");
const url = photo.url();

まとめ

ファイルストアについては、NCMBとParse Serverでの実装が大きく異なるので注意してください。アップロードでの権限管理もありますし、ファイルに対してはACLは設定できないようです(関連付けたデータストア側で制御する必要があります)。

なお、Parse ServerではファイルのバイナリデータをMongoDBやAmazon S3などのストレージに保存もできます。詳しくは公式ドキュメントを参照してください。

中津川 篤司

中津川 篤司

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