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

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

C#用NCMB SDK(コミュニティSDK)の使い方(ファイルストアへのアップロード)

f:id:mbaasdevrel:20200710131602p:plain

C#で作られているSDKとしてはUnity SDKがありますが、Unity以外の環境では利用できません。そこで有償のテクニカルサポートは提供していませんが、コミュニティSDKとしてC# SDKを開発中です。こちらは純粋なC#で作られており、Xamarinや.NETアプリケーション開発に利用できます。

今回はこのC# SDKがファイルストアへのアップロードに対応したので、使い方を紹介します。

インストールについて

C# SDKはNuGetで公開していますので、Visual Studioなどでインポートできます。

使い方

使い方はまず、NCMBClientを読み込みます。

using NCMBClient;

初期化

初期化は次のようにします。アプリケーションキー、クライアントキーは自分のものに変更してください。

var applicationKey = "70d...934";
var clientKey = "4d0...dff";

new NCMB(applicationKey, clientKey);

初期化さえ終われば、次のようなオブジェクトが利用できます。

  • NCMBObject
    データストアのオブジェクト
  • NCMBQuery
    データストア、会員管理、ロール、Installation、ファイルストア検索用
  • NCMBAcl
    権限管理用
  • NCMBUser
    会員管理用
  • NCMBRelation
    データストアのリレーション
  • NCMBFile
    ファイルストア用

ファイルアップロード

NCMBFileオブジェクトを作成し、Saveメソッドを実行するとファイルがアップロードされます。

var str = "1,2,3";
var data = System.Text.Encoding.ASCII.GetBytes(str);
var file = new NCMBFile("test.csv", data, "text/csv");
await file.Save();

インスタンス作成時の引数は次の通りです。

  1. ファイル名
  2. データ(バイト配列)
  3. Mime Type

バイナリファイルのアップロード

バイト配列さえ渡せば、バイナリファイルでもアップロードできます。

var data = File.ReadAllBytes("/path/to/ncmb.png");
var file = new NCMBFile("ncmb.png", data, "image/png");
await file.Save();

ACL付きでのアップロード

ACL(アクセス権限)を設定する場合にはSetAclを使います。

var str = "1,2,3";
var data = System.Text.Encoding.ASCII.GetBytes(str);
var file = new NCMBFile("test.csv", data, "text/csv");
var acl = new NCMBAcl();
acl.SetPublicReadAccess(false);
acl.SetPublicWriteAccess(true);
file.SetAcl(acl);
await file.Save();

コードについて

コードはNCMBMania/ncmb_xamarin: Xamarin SDK for NCMBにアップロードしています。ライセンスはMIT Licenseになります。

まとめ

NCMBFileはまだファイルアップロードくらいしか機能がありません。徐々に機能追加していく予定です。カメラで撮影した写真をアップロードしたり、業務アプリでエクスポートしたファイルを保存するのに利用できるでしょう。

中津川 篤司

中津川 篤司

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