機能的にはまだまだ少ないですが、Deno/TypeScript用のSDKを開発中です。TypeScriptで作られており、VueやReact、Angularとの組み合わせでも利用できます。
NCMBMania/ncmb_deno: deno用のSDKです
今回はファイルストアの使い方です。ファイルストアを使うことでテキストファイルや画像などを簡単にアップロードしたり、取得できます。
インストール方法
インストールは普段使っているnpmやYarnで可能です。
npm install ncmb_ts -S
初期化
初期化は次のように行います。
// Node.jsの場合 import NCMB, { NCMBUser, NCMBQuery } from 'ncmb_ts' // denoの場合 import NCMB, { NCMBUser, NCMBQuery, NCMBFile } from 'https://raw.githubusercontent.com/NCMBMania/ncmb_deno/master/deno/ncmb.ts' const ncmb = new NCMB('YOUR_APPLICATION_KEY', 'YOUR_CLIENT_KEY')
テキストファイルのアップロード
ファイルアップロードは NCMBFile.upload を使います。テキストファイルの場合は次のようになります。返り値はNCMBFileです。
const fileName = 'test.csv'; const file = await NCMBFile.upload(fileName, '1,2,3');
ACL付きでアップロード
アクセス権限を付ける場合には3つ目の引数で指定します。
const acl = new NCMBAcl; acl .setPublicReadAccess(false) .setUserWriteAccess(user, true) .setUserReadAccess(user, true); const text = '1,2,3'; const fileName = 'acl2.csv'; const file = await NCMBFile.upload(fileName, text, acl);
バイナリファイルのアップロード
バイナリファイルの場合も基本的に同じですが、readFileの返り値を渡します。4つ目の引数はContentTypeになります。
const fileName = 'test.jpg'; const blob = await promisify(fs.readFile)(`./src/tests/${fileName}`); const file = await NCMBFile.upload(fileName, blob, undefined, 'image/jpeg');
ファイルの削除
削除は delete メソッドを使います。
await file.delete();
ファイルのダウンロード
ダウンロードは File.dowload を使います。binaryを指定した場合、Blobで返ってきます。
const fileName = 'test.csv'; const file = await NCMBFile.upload(fileName, text, undefined, 'text/csv'); assert.equal(fileName, file.get('fileName')); const download = await file.download('binary') as Blob; assert.equal(text, await download.text());
ファイルの検索
検索は NCMBFile.query を使います。
const query = NCMBFile.query(); const files = await query.fetchAll();
まとめ
ファイルストアを使えばテキストファイルやバイナリファイルを自由にアップロードできます。アプリで撮影した写真をアップロードしたり、アプリ内で使う素材を保存するのに利用してください。