fix model del & rename
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
const fs = require("node:fs");
|
||||
const path = require("node:path");
|
||||
|
||||
function createModelHandlers({ callServer, fetchImpl = fetch }) {
|
||||
return {
|
||||
list(request) {
|
||||
return callServer({
|
||||
type: "listModels",
|
||||
folder: `${request.deviceId}/model_config`
|
||||
}, request.credentials);
|
||||
},
|
||||
|
||||
async upload(request) {
|
||||
if (!request.sourcePath || !request.fileName) throw new Error("请先选择模型文件");
|
||||
const sourcePath = path.resolve(request.sourcePath);
|
||||
const fileName = path.basename(request.fileName);
|
||||
const modelName = path.basename(request.modelName || fileName);
|
||||
await fs.promises.access(sourcePath, fs.constants.R_OK);
|
||||
const issued = await callServer({
|
||||
type: "uploadDataFile",
|
||||
fileName,
|
||||
folder: `${request.deviceId}/model_config`,
|
||||
modelName,
|
||||
overwrite: request.overwrite === true
|
||||
}, request.credentials);
|
||||
const form = new FormData();
|
||||
form.append("file", new Blob([await fs.promises.readFile(sourcePath)]), fileName);
|
||||
const response = await fetchImpl(issued.uploadMetadata.url, { method: "POST", body: form });
|
||||
if (![200, 204].includes(response.status)) throw new Error(`模型上传失败: HTTP ${response.status}`);
|
||||
return {
|
||||
success: true,
|
||||
fileID: issued.fileID,
|
||||
fileName: issued.fileName,
|
||||
originalFileName: issued.originalFileName
|
||||
};
|
||||
},
|
||||
|
||||
delete(request) {
|
||||
return callServer({ type: "deleteModel", fileID: request.fileID }, request.credentials);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = { createModelHandlers };
|
||||
Reference in New Issue
Block a user