8. ファイルストレージ¶
ここではファイルストレージの利用方法について説明します。
8.1. バケットの取得¶
NEC BaaS Embedded SDKではサーバへのバケットの生成はサポートしていないため、事前にデベロッ パーコンソールなどから該当のバケットを作成しておきます。
ファイル一覧操作などにはバケットが必要になります。 以下のようにファイルバケットのインスタンスを生成します。
NbFileBucket bucket(service1, "bucketName");
8.2. ファイルの新規アップロード¶
ファイルを新規アップロードするには、NbFileBucket の UploadNewFile() を使用します。
NbResult<NbFileMetadata> uploadResult = bucket.UploadNewFile("test_file.txt",
"~/test_file.txt",
"text/plain",
NbAcl::CreateAclForAnonymous());
if(uploadResult.IsSuccess()) {
// 処理成功
// uploadしたファイルのメタデータを取得
NbFileMetadata meta = uploadResult.GetSuccessData();
} else {
// 処理失敗
}
UploadNewFile() には、ファイル名、ファイルパス、Content-Type、ACL、キャッシュ禁止フラグ(オプション)を渡します。
8.4. ファイル一覧の取得¶
バケット内のファイル一覧の取得には、NbFileBucket.GetFiles() を呼び出すことで行います。
NbResult<std::vector<NbFileMetadata>> resultFiles = bucket.GetFiles(false, false);
if(resultFiles.IsSuccess()) {
// 処理成功
for(auto aFile : resultFiles.GetSuccessData()) {
// 各メタデータの参照
}
} else {
// 処理失敗
}
第一引数publishedがtrueの場合、公開設定をされているファイルのみを取得します。 また第二引数deleteMarkがtrueの場合、削除マークが付与されたファイルを含め、検索対象とします。
8.5. ファイルのダウンロード¶
ファイルのダウンロードには、NbFileBucket.DownloadFile() を使用します。
NbResult<int> downloadResult = bucket.DownloadFile("test_file.txt",
"./download_test_file.txt");
if(downloadResult.IsSuccess()) {
// 処理成功
} else {
// 処理失敗
}
8.6. ファイルの削除¶
ファイルを削除するには NbFileBucket.DeleteFile() を使用します。 通常はGetFiles()等で取得したメタデータを使用してファイルを指定します。
NbResult<NbJsonObject> deleteResult = bucket.DeleteFile(metaData, false);
if(deleteResult.IsSuccess()) {
// 処理成功
} else {
// 処理失敗
}
第二引数がtrueの場合、メタデータに削除マークを付与します。後からファイルの情報を参照することができます。処理結果には更新されたメタデータが格納されます。
falseの場合、メタデータを完全に消去します。処理結果は空となります。