11. ファイルストレージ

ここではファイルストレージの利用方法について説明します。

11.1. バケットインスタンスの生成

ファイルストレージを操作する際は、バケットインスタンスを生成する必要があります。

バケット名を指定して NbFileBucket() を生成します。

var bucket = new NbFileBucket("FileBucket1");

11.2. ファイルの新規アップロード

ファイルを新規アップロードするには、UploadNewFileAsync() を呼び出します。

byte[] data = File.ReadAllBytes("c:\\tmp\\sample1.jpg");
NbFileMetadata metaData = await fileBucket.UploadNewFileAsync(data, "sample1.jpg", "image/jpeg", null);

UploadNewFileAsync には、データ(バイト配列)、ファイル名、Content-Type, ACL(省略可)を渡します。

成功すると、NbFileMetadata で表現されるファイルメタデータが返却されます。

11.3. アクセス制御

ファイル単位でアクセス制御を行うことができます。

アクセス制御には、オブジェクトストレージと同様に NbACL クラスを使用します。 UploadNewFileAsync() の引数で ACL を指定することができます。

11.4. ファイル一覧の取得

バケット内のファイル一覧の取得には、NbFileBucket.GetFilesAsync() を呼び出すことで行います。

var fileMetas = await fileBucket.getFileMetadataList();

返り値は IEnumerable<NbFileMetadata> となります。

11.5. ファイルのダウンロード

ファイルのダウンロードには、NbFileBucket.DownloadFileAsync() を使用します。

var data = await fileBucket.DownloadFileAsync("sample1.jpg");
File.WriteAllBytes("c:\\tmp\\sample1.jpg", data.RawBytes);

返り値は DownloadData クラスインスタンスとなります。 この中にファイル名、Content-Type、Content-Length、バイナリデータ(byte配列)が格納されます。

11.6. ファイルの公開

ファイルを公開するには NbFileBucket.PublishFileAsync() を使用します。

ファイルを公開すると、そのファイルに一意な URL が自動的に割り当てられ、REST API 以外から 無制限にアクセスができるようになります。

var meta = fileBucket.PublishFileAsync("sample1.jpg");

公開されたファイルの URL は、NbFileMetadata の PublicUrl プロパティにセットされます。

公開を停止するには NbFileBucket.UnpublishFileAsync() を使用します。