こちらはニフクラ mobile backendで毎月開催しているもくもく会で質問のあった内容から生まれたアイディアになります。
ファイルストアにはアプリで利用する画像や音声ファイルであったり、アプリで撮影した写真やバックアップデータなどを保存できます。しかし、これらのデータにはファイル名以外の情報が追加できません。そのため、データが区別なく一覧で表示されるだけです。
このデータをカテゴリで分類分けしたり、利用用途などの情報を追加したいと思わないでしょうか。そこで使ってみたいのがデータストアとの組み合わせです。
ファイルストアのデータ管理について
ファイルストアは単にファイル名だけの管理だけとなっています。
ファイル名 | 作成日 | 更新日 |
---|---|---|
ncmb.png | 2019-06-01 10:00:00 | 2019-06-02 10:00:00 |
bg.png | 2019-06-01 10:00:00 | 2019-06-02 10:00:00 |
fg.png | 2019-06-01 10:00:00 | 2019-06-02 10:00:00 |
カテゴリなどの付与情報(メタデータ)を追加することはできません。
データストアも追加する
そこでデータストアに新しいクラス(例えばMetaクラス)を追加します。
オブジェクトID | ファイル名 | カテゴリ | 環境 |
---|---|---|---|
aaaaaa | ncmb.png | アプリ用 | 開発環境 |
bbbbbb | bg.png | Web用 | 本番環境 |
cccccc | fg.png | Web用 | 本番環境 |
このようにファイル名を共通のものにしておけば問題ありません。
利用イメージ
これまではファイルストアを検索していたと思いますが、それをデータストアのクラス(今回はMetaクラス)を検索するようにします。そうすればカテゴリや環境などのメタ情報も使って検索ができるようになります。
そしてファイル名さえ分かれば、ファイルストアからのダウンロードは自由にできます。
curl -X GET -G -H "X-NCMB-Application-Key:b8cfe143fb5e9fb54af2456af6427f05d9a7615f976a7fc1f140db251290941c"\ -H "X-NCMB-Timestamp:2013-12-08T02:44:35.452Z"\ -H "X-NCMB-Signature: f75HFQlhuCi8vrRjRXym/PXjv3+vqswhAj2fCRqoZ24="\ -H "Content-Type: application/json" https://mbaas.api.nifcloud.com/2013-09-01/files/test.png
REST API リファレンス : ファイル取得 | ニフクラ mobile backend
まとめ
ファイルストアを検索して利用すると、その情報の少なさに苦労するはずです。データをファイルストアとクラス、両方に登録することになるのでAPIコール数としては2倍かかってしまいますが、後々のデータ管理の容易さを考えると別途クラスを用意する方がお勧めです。また、大量のファイルデータが増えた時にもデータストアであればインデックスが貼れるので利点です。
ニフクラ mobile backendでは皆さんのアプリ開発におけるお悩みを解決するもくもく会を毎月開催しています。2時間程度ですが、集中して開発を行いつつ何か迷ったところがあれば素早く解決できますので、ぜひご参加ください。