From 39d3a631f06d6712dcfbaff8904859291ba87219 Mon Sep 17 00:00:00 2001 From: zhishi <1951671751@qq.com> Date: Thu, 2 Apr 2026 23:49:05 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E9=99=A4=20oss=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/production/assets/updateAssetsUrl.ts | 2 +- src/routes/production/editImage/updateImageFlow.ts | 5 +++-- src/routes/production/storyboard/addStoryboard.ts | 2 +- .../production/storyboard/updateStoryboardUrl.ts | 2 +- src/utils.ts | 2 ++ src/utils/replaceUrl.ts | 12 ++++++++++++ 6 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 src/utils/replaceUrl.ts diff --git a/src/routes/production/assets/updateAssetsUrl.ts b/src/routes/production/assets/updateAssetsUrl.ts index 6317e83..906165a 100644 --- a/src/routes/production/assets/updateAssetsUrl.ts +++ b/src/routes/production/assets/updateAssetsUrl.ts @@ -16,7 +16,7 @@ export default router.post( async (req, res) => { const { id, url, flowId } = req.body; const [imageId] = await u.db("o_image").insert({ - filePath: new URL(url).pathname, + filePath: u.replaceUrl(url), state: "已完成", assetsId: id, }); diff --git a/src/routes/production/editImage/updateImageFlow.ts b/src/routes/production/editImage/updateImageFlow.ts index f22ce67..945be6f 100644 --- a/src/routes/production/editImage/updateImageFlow.ts +++ b/src/routes/production/editImage/updateImageFlow.ts @@ -19,10 +19,11 @@ export default router.post( const { edges, nodes, flowId } = req.body; nodes.forEach((node: any) => { if (node.type == "upload") { - node.data.image = node.data.image ? new URL(node.data.image).pathname : ""; + node.data.image = node.data.image ? u.replaceUrl(node.data.image) : ""; } + if (node.type == "generated") { - node.data.generatedImage = node.data.generatedImage ? new URL(node.data.generatedImage).pathname : ""; + node.data.generatedImage = node.data.generatedImage ? u.replaceUrl(node.data.generatedImage) : ""; } }); // let imagePath = ""; diff --git a/src/routes/production/storyboard/addStoryboard.ts b/src/routes/production/storyboard/addStoryboard.ts index 54aebf1..64ecdae 100644 --- a/src/routes/production/storyboard/addStoryboard.ts +++ b/src/routes/production/storyboard/addStoryboard.ts @@ -35,7 +35,7 @@ export default router.post( prompt, duration, state, - filePath: new URL(src).pathname, + filePath: u.replaceUrl(src), trackId, videoDesc, shouldGenerateImage: src ? 1 : 0, diff --git a/src/routes/production/storyboard/updateStoryboardUrl.ts b/src/routes/production/storyboard/updateStoryboardUrl.ts index 708f43f..d8c195f 100644 --- a/src/routes/production/storyboard/updateStoryboardUrl.ts +++ b/src/routes/production/storyboard/updateStoryboardUrl.ts @@ -19,7 +19,7 @@ export default router.post( .db("o_storyboard") .where({ id }) .update({ - filePath: new URL(url).pathname, + filePath: u.replaceUrl(url), flowId, state: "已完成", shouldGenerateImage:url ? 1 : 0 diff --git a/src/utils.ts b/src/utils.ts index c7a584d..83cc36c 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -10,6 +10,7 @@ import task from "@/utils/taskRecord"; import Ai from "@/utils/ai"; import { getPrompts } from "@/utils/getPrompts"; import { getArtPrompt } from "@/utils/getArtPrompt"; +import replaceUrl from "@/utils/replaceUrl"; export default { db, @@ -24,4 +25,5 @@ export default { task, getPrompts, getArtPrompt, + replaceUrl }; diff --git a/src/utils/replaceUrl.ts b/src/utils/replaceUrl.ts new file mode 100644 index 0000000..bcdfec8 --- /dev/null +++ b/src/utils/replaceUrl.ts @@ -0,0 +1,12 @@ +export default function replaceUrl(url: string): string { + if (typeof url !== 'string' || !url.trim()) return ''; + let cleanedPath = ''; + try { + const pathname = new URL(url).pathname; + cleanedPath = pathname.replace(/^\/oss/, ''); + } catch (e) { + // 如果不是有效的URL,则直接返回原字符串 + cleanedPath = url; + } + return cleanedPath; +}