Fix: folder with the same name should not be created
This commit is contained in:
parent
b3ef833afd
commit
0982347f40
5 changed files with 17 additions and 3 deletions
2
assets
2
assets
|
@ -1 +1 @@
|
|||
Subproject commit 341a70e7c8d451fa8c627786434cb5f617fd2f26
|
||||
Subproject commit 79aaeb9e3a02dab9133f39f872602414b0ab57a0
|
|
@ -1,8 +1,10 @@
|
|||
package middleware
|
||||
|
||||
import (
|
||||
"github.com/HFO4/cloudreve/pkg/util"
|
||||
"github.com/gin-contrib/sessions"
|
||||
"github.com/gin-contrib/sessions/memstore"
|
||||
"github.com/gin-contrib/sessions/redis"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
|
@ -11,7 +13,10 @@ var Store memstore.Store
|
|||
|
||||
// Session 初始化session
|
||||
func Session(secret string) gin.HandlerFunc {
|
||||
Store = memstore.NewStore([]byte(secret))
|
||||
Store, err := redis.NewStore(10, "tcp", "127.0.0.1:6379", "52121225", []byte("secret"))
|
||||
if err != nil {
|
||||
util.Log().Panic("无法连接到Redis:%s", err)
|
||||
}
|
||||
// Also set Secure: true if using SSL, you should though
|
||||
Store.Options(sessions.Options{HttpOnly: true, MaxAge: 7 * 86400, Path: "/"})
|
||||
return sessions.Sessions("cloudreve-session", Store)
|
||||
|
|
|
@ -12,7 +12,8 @@ var (
|
|||
ErrInsufficientCapacity = errors.New("容量空间不足")
|
||||
ErrIllegalObjectName = errors.New("目标名称非法")
|
||||
ErrInsertFileRecord = serializer.NewError(serializer.CodeDBError, "无法插入文件记录", nil)
|
||||
ErrFileExisted = errors.New("同名文件已存在")
|
||||
ErrFileExisted = serializer.NewError(serializer.CodeObjectExist, "同名文件已存在", nil)
|
||||
ErrFolderExisted = serializer.NewError(serializer.CodeObjectExist, "同名目录已存在", nil)
|
||||
ErrPathNotExist = serializer.NewError(404, "路径不存在", nil)
|
||||
ErrObjectNotExist = serializer.NewError(404, "文件不存在", nil)
|
||||
ErrIO = serializer.NewError(serializer.CodeIOFailed, "无法读取文件数据", nil)
|
||||
|
|
|
@ -107,6 +107,12 @@ func (fs *FileSystem) CreateDirectory(ctx context.Context, fullPath string) erro
|
|||
return ErrPathNotExist
|
||||
}
|
||||
|
||||
// 是否有同名目录
|
||||
b, _ := fs.IsPathExist(fullPath)
|
||||
if b {
|
||||
return ErrFolderExisted
|
||||
}
|
||||
|
||||
// 是否有同名文件
|
||||
if ok, _ := fs.IsFileExist(path.Join(base, dir)); ok {
|
||||
return ErrFileExisted
|
||||
|
|
|
@ -50,6 +50,8 @@ const (
|
|||
CodeUploadFailed = 40002
|
||||
// CodeCreateFolderFailed 目录创建失败
|
||||
CodeCreateFolderFailed = 40003
|
||||
// CodeObjectExist 对象已存在
|
||||
CodeObjectExist = 40004
|
||||
// CodeDBError 数据库操作失败
|
||||
CodeDBError = 50001
|
||||
// CodeEncryptError 加密失败
|
||||
|
|
Loading…
Add table
Reference in a new issue