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には対応していませんが、近く対応します。