From b862ddb666f6d77415d38c38ec43f010f01b3a40 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Fri, 17 Jan 2020 14:24:51 +0800 Subject: [PATCH] Fix: file should be deleted when callback return error --- pkg/filesystem/file.go | 5 ++++- service/callback/upload.go | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/filesystem/file.go b/pkg/filesystem/file.go index 6fb2265..cc7fed0 100644 --- a/pkg/filesystem/file.go +++ b/pkg/filesystem/file.go @@ -46,7 +46,10 @@ func (fs *FileSystem) AddFile(ctx context.Context, parent *model.Folder) (*model // 添加文件记录前的钩子 err := fs.Trigger(ctx, "BeforeAddFile") if err != nil { - return nil, err + if err := fs.Trigger(ctx, "BeforeAddFileFailed"); err != nil { + util.Log().Debug("BeforeAddFileFailed 钩子执行失败,%s", err) + } + return nil, ErrFileExisted.WithError(err) } file := ctx.Value(fsctx.FileHeaderCtx).(FileHeader) diff --git a/service/callback/upload.go b/service/callback/upload.go index 2657579..eb15598 100644 --- a/service/callback/upload.go +++ b/service/callback/upload.go @@ -82,6 +82,8 @@ func ProcessCallback(service CallbackProcessService, c *gin.Context) serializer. fs.Use("BeforeAddFile", filesystem.HookValidateFile) fs.Use("BeforeAddFile", filesystem.HookValidateCapacity) fs.Use("AfterValidateFailed", filesystem.HookGiveBackCapacity) + fs.Use("AfterValidateFailed", filesystem.HookDeleteTempFile) + fs.Use("BeforeAddFileFailed", filesystem.HookDeleteTempFile) // 向数据库中添加文件 file, err := fs.AddFile(ctx, parentFolder)