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();
インスタンス作成時の引数は次の通りです。
- ファイル名
- データ(バイト配列)
- 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はまだファイルアップロードくらいしか機能がありません。徐々に機能追加していく予定です。カメラで撮影した写真をアップロードしたり、業務アプリでエクスポートしたファイルを保存するのに利用できるでしょう。