写「清空回收站」接口的时候,用的是 `DELETE /api/trash/empty`,结果 FastAPI 把它匹配到了 `DELETE /api/trash/{file_id}`,把字符串 "empty" 当成 file_id 去查数据库,当然找不到。
解决方法:把 `empty` 这个特殊路由改成 `POST /api/trash/empty`,绕开和参数路由的冲突。或者如果非要用 DELETE,就把具体路由写在参数路由**前面**——FastAPI 按声明顺序匹配,谁先定义谁先匹配。
教训:凡是路径里有可能和参数段重名的字面量(比如 `empty`、`batch`、`me`),要么改 HTTP 方法,要么确保路由声明顺序。