webdav兼容rclone的nextcloud选项(修改日期和checksum)

This commit is contained in:
Weidi Deng
2023-04-07 22:16:11 +08:00
parent c8b736bd8f
commit 1b4eff624d
5 changed files with 119 additions and 32 deletions

View File

@@ -38,26 +38,26 @@ func moveFiles(ctx context.Context, fs *filesystem.FileSystem, src FileInfo, dst
fileIDs = []uint{src.(*model.File).ID}
}
// 判断是否需要移动
if src.GetPosition() != path.Dir(dst) {
err = fs.Move(
ctx,
folderIDs,
fileIDs,
src.GetPosition(),
path.Dir(dst),
)
}
// 判断是否需要移动
if src.GetPosition() != path.Dir(dst) {
err = fs.Move(
ctx,
folderIDs,
fileIDs,
src.GetPosition(),
path.Dir(dst),
)
}
// 判断是否需要重命名
if err == nil && src.GetName() != path.Base(dst) {
err = fs.Rename(
ctx,
folderIDs,
fileIDs,
path.Base(dst),
)
}
// 判断是否需要重命名
if err == nil && src.GetName() != path.Base(dst) {
err = fs.Rename(
ctx,
folderIDs,
fileIDs,
path.Base(dst),
)
}
if err != nil {
return http.StatusInternalServerError, err
@@ -74,21 +74,25 @@ func copyFiles(ctx context.Context, fs *filesystem.FileSystem, src FileInfo, dst
}
recursion++
var (
fileIDs []uint
folderIDs []uint
)
if src.IsDir() {
err := fs.Copy(
ctx,
[]uint{src.(*model.Folder).ID},
[]uint{}, src.(*model.Folder).Position,
path.Dir(dst),
)
if err != nil {
return http.StatusInternalServerError, err
}
folderIDs = []uint{src.(*model.Folder).ID}
} else {
err := fs.Copy(ctx, []uint{}, []uint{src.(*model.File).ID}, src.(*model.File).Position, path.Dir(dst))
if err != nil {
return http.StatusInternalServerError, err
}
fileIDs = []uint{src.(*model.File).ID}
}
err = fs.Copy(
ctx,
folderIDs,
fileIDs,
src.GetPosition(),
path.Dir(dst),
)
if err != nil {
return http.StatusInternalServerError, err
}
return http.StatusNoContent, nil