feat: new storage endpoint folder size
This commit is contained in:
parent
63314abedb
commit
6a5ccc09a5
3 changed files with 100 additions and 1 deletions
|
|
@ -114,7 +114,25 @@ interface DownloadFileBody {
|
|||
file: string;
|
||||
}
|
||||
|
||||
async function listFolder(path: string[], hidden: boolean = false) {
|
||||
async function folderSize(path: string[]) {
|
||||
const size = await new Promise<number>((resolve, reject) => {
|
||||
const stream = minioClient.listObjectsV2(
|
||||
DEFAULT_BUCKET,
|
||||
path.length === 0 ? "" : path.join("/") + "/",
|
||||
true,
|
||||
);
|
||||
let total: number = 0;
|
||||
|
||||
stream.on("data", (v) => {
|
||||
if (v && v.size) total += v.size;
|
||||
});
|
||||
stream.on("end", () => resolve(total));
|
||||
stream.on("error", () => reject(new Error("เกิดข้อผิดพลาดกับระบบจัดการไฟล์")));
|
||||
});
|
||||
return size;
|
||||
}
|
||||
|
||||
async function listFolder(path: string[]) {
|
||||
const list = await new Promise<{ pathname: string; name: string }[]>((resolve, reject) => {
|
||||
const item: { pathname: string; name: string }[] = [];
|
||||
|
||||
|
|
@ -379,6 +397,13 @@ export class StorageController extends Controller {
|
|||
return this.setStatus(HttpStatusCode.NO_CONTENT);
|
||||
}
|
||||
|
||||
@Post("folder/size")
|
||||
@Tags("Storage Folder")
|
||||
@Security("bearerAuth", ["management-role", "admin"])
|
||||
public async folderSize(@Body() body: FolderBody) {
|
||||
return { size: await folderSize([...body.path, body.name]) };
|
||||
}
|
||||
|
||||
/**
|
||||
* ลบ Folder ออกจากระบบ
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue