fix: cannot upload file to onedrive because file info not match (fix #1215)

Path in onedrive is not case-sensitive while Cloudreve cares, thus file size is not matching when finishing upload.
pull/1239/head
HFO4 2 years ago
parent 71df067a76
commit 2ab2662fcd

@ -1 +1 @@
Subproject commit 335880b776326f9f0fcf1c4b3d99d4cfb82303b3
Subproject commit f2e11958738434c5a14547f21b6e78d7f3aec6fe

@ -379,10 +379,14 @@ func (fs *FileSystem) listObjects(ctx context.Context, parent string, files []mo
// CreateDirectory 根据给定的完整创建目录,支持递归创建。如果目录已存在,则直接
// 返回已存在的目录。
func (fs *FileSystem) CreateDirectory(ctx context.Context, fullPath string) (*model.Folder, error) {
if fullPath == "/" || fullPath == "." || fullPath == "" {
if fullPath == "." || fullPath == "" {
return nil, ErrRootProtected
}
if fullPath == "/" {
return fs.User.Root()
}
// 获取要创建目录的父路径和目录名
fullPath = path.Clean(fullPath)
base := path.Dir(fullPath)

@ -179,7 +179,7 @@ func (service *OneDriveCallback) PreProcess(c *gin.Context) serializer.Response
isSizeCheckFailed = false
}
if isSizeCheckFailed || info.GetSourcePath() != actualPath {
if isSizeCheckFailed || !strings.EqualFold(info.GetSourcePath(), actualPath) {
fs.Handler.(onedrive.Driver).Client.Delete(context.Background(), []string{info.GetSourcePath()})
return serializer.Err(serializer.CodeUploadFailed, "文件信息不一致", err)
}

Loading…
Cancel
Save