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

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

【もくもく会より】ファイルストアで保存されているデータにメタデータを追加するには

f:id:mbaasdevrel:20190619154339p:plain

こちらはニフクラ 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時間程度ですが、集中して開発を行いつつ何か迷ったところがあれば素早く解決できますので、ぜひご参加ください。

ニフクラ mobile backend - connpass

中津川 篤司

中津川 篤司

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