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

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

Java用NCMB SDKを開発しています(ファイルストアへのアップロード/ダウンロード)

f:id:mbaasdevrel:20190318155501p:plain

NCMBではJavaを使ったSDKをAndroid SDKとして提供しています。これはデバイストークンの取得機能など、Androidの関連付いて作られています。同じJavaではありますが、サーバサイドで利用することはできません。

ここでは現在開発中のJava用SDK(非公式)の使い方を紹介します。今回はファイルストアへのアップロード(mimeType対応)とダウンロードについて解説します。

ファイルアップロードについて

テキストの場合、文字列をそのまま当てられます。3番目の引数としてmimeTypeを指定できます。指定しない場合は application/octet-stream になります。

byte[] data = "# Header\n## Section Header\n## 日本語".getBytes();
NCMBFile file = ncmb.NCMBFile("Test.md", data, "text/markdown");
if (file.save()) {
  System.out.println("保存完了");
  System.out.println(file.fileName);
}

バイナリの場合も同様です。

String filePath = "./test.png";
Path path = new File(filePath).toPath();
byte[] data = Files.readAllBytes(path);
String mimeType = Files.probeContentType(path);
NCMBFile file = ncmb.NCMBFile("test333.png", data, mimeType);
if (file.save()) {
  System.out.println("保存完了");
  System.out.println(file.fileName);
}

ファイルダウンロードについて

ダウンロードはファイル名を指定するだけです。返値はバイト列になります。

NCMBFile file = ncmb.NCMBFile("Test.md");
byte[] data = file.download();

戻ってきた内容はそのままファイルに書き出したり、 new String(data) で文字列に戻せます。

コードについて

コードはNCMBMania/java-sdkにて公開しています。ライセンスはMIT Licenseになります。

まとめ

サーバからファイルをアップロードしたり、mBaaS上にあるファイルをダウンロードするのに使えるかと思います。まだACLには対応していませんが、近く対応します。

中津川 篤司

中津川 篤司

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