From 48a5bf06d0226504f3c16d8ee887a55fffe65205 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Tue, 22 Sep 2026 13:36:28 +0800 Subject: [PATCH] =?UTF-8?q?3D=20=E4=BA=A7=E7=89=A9=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E5=85=8B=E9=9A=86=20content=20type?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - server-rs/crates/api-server/src/tripo3d/artifacts.rs:content_type 只在本函数取一次、之后不再读句柄字段,改用 take() 转移所有权而不是 clone() 验证:cargo check -p api-server(--locked) --- server-rs/crates/api-server/src/tripo3d/artifacts.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server-rs/crates/api-server/src/tripo3d/artifacts.rs b/server-rs/crates/api-server/src/tripo3d/artifacts.rs index c65ccb99a..179455594 100644 --- a/server-rs/crates/api-server/src/tripo3d/artifacts.rs +++ b/server-rs/crates/api-server/src/tripo3d/artifacts.rs @@ -24,7 +24,7 @@ pub(crate) struct DownloadedArtifact { pub(crate) async fn read_artifact( mut artifact: TripoDownloadedArtifact, ) -> Result { - let content_type = artifact.content_type.clone().unwrap_or_default(); + let content_type = artifact.content_type.take().unwrap_or_default(); // 按声明长度预分配(封顶到单产物上限,防止 provider 谎报长度撑爆内存): // 几百 MB 的模型逐块 append 会反复搬移,预分配把峰值与拷贝都压下来。 let claimed_bytes = artifact