update komponen, stores, desain
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
// server/api/serverFile/files.get.ts
|
||||
import fs from "fs"
|
||||
import path from "path"
|
||||
import { promisify } from "util"
|
||||
|
||||
const readdir = promisify(fs.readdir)
|
||||
const stat = promisify(fs.stat)
|
||||
|
||||
// Lokasi folder network share (pastikan sudah di-mount / accessible dari server)
|
||||
const FOLDER_PATH = "\\\\10.10.150.129\\Shared"
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
try {
|
||||
|
||||
// Baca semua isi folder
|
||||
const files = await readdir(FOLDER_PATH, { withFileTypes: true })
|
||||
|
||||
// Filter file saja dan ambil metadata
|
||||
const list = await Promise.all(
|
||||
files
|
||||
.filter((f) => f.isFile())
|
||||
.map(async (f) => {
|
||||
const filePath = path.join(FOLDER_PATH, f.name)
|
||||
const info = await stat(filePath)
|
||||
return {
|
||||
name: f.name,
|
||||
size: info.size,
|
||||
modified: info.ctime,
|
||||
ext: path.extname(f.name),
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
return list.sort(
|
||||
(a, b) => new Date(b.modified).getTime() - new Date(a.modified).getTime()
|
||||
) // urut terbaru
|
||||
} catch (err: any) {
|
||||
console.error("Gagal sinkronisasi file:", err.message)
|
||||
return { error: err.message }
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user