fix(pages): 收紧部署包与 Agent 同步边界

完成 V2 Phase 0 安全与一致性前置:统一真实归档限额、流式拉取、候选裁剪、保留上传删除语义及 Pages 路由引用锁。
This commit is contained in:
deqiying
2026-07-19 16:42:45 +08:00
parent f386674464
commit 4e8ec23264
47 changed files with 4005 additions and 759 deletions
@@ -4,6 +4,7 @@
package handler
import (
"errors"
"net/http"
"strconv"
@@ -96,6 +97,7 @@ func ListFiles(c *gin.Context) {
// @Success 200 {object} response.Any "删除成功"
// @Failure 403 {object} response.Any "无权操作"
// @Failure 404 {object} response.Any "文件不存在"
// @Failure 409 {object} response.Any "系统保留类型或存储只读"
// @Router /api/v1/admin/uploads/{id} [delete]
func DeleteFile(c *gin.Context) {
ctx := c.Request.Context()
@@ -111,6 +113,10 @@ func DeleteFile(c *gin.Context) {
}
if _, err := softDeleteUpload(ctx, uploadID); err != nil {
if errors.Is(err, ingest.ErrReservedUploadType) {
response.AbortConflict(c, shared.ErrReservedUploadType)
return
}
if isRecordNotFound(err) {
response.AbortNotFound(c, "文件记录未找到")
return
@@ -216,6 +222,7 @@ func ListMyFiles(c *gin.Context) {
// @Success 200 {object} response.Any "删除成功"
// @Failure 403 {object} response.Any "无权操作"
// @Failure 404 {object} response.Any "文件不存在"
// @Failure 409 {object} response.Any "系统保留类型或存储只读"
// @Router /api/v1/upload/{id} [delete]
func DeleteMyFile(c *gin.Context) {
currUser, _ := oauth.GetFromContext[*model.User](c, oauth.UserObjKey)
@@ -232,11 +239,15 @@ func DeleteMyFile(c *gin.Context) {
}
if _, err := softDeleteOwnedUpload(ctx, currUser.ID, uploadID); err != nil {
if errors.Is(err, ingest.ErrReservedUploadType) {
response.AbortConflict(c, shared.ErrReservedUploadType)
return
}
if isRecordNotFound(err) {
response.AbortNotFound(c, "文件记录未找到")
return
}
if err == ingest.ErrForbidden {
if errors.Is(err, ingest.ErrForbidden) {
response.AbortForbidden(c, "无权操作")
return
}