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() を使用します。