From 108ec53c0c2e78f808167de52408cbec4e94cb7f Mon Sep 17 00:00:00 2001 From: Cnly Date: Wed, 26 Dec 2018 16:27:58 +0800 Subject: [PATCH] onedrive: fix driveID of src being moved not determined correctly --- backend/onedrive/onedrive.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/backend/onedrive/onedrive.go b/backend/onedrive/onedrive.go index 5942ff4bd..44a5eb8ca 100644 --- a/backend/onedrive/onedrive.go +++ b/backend/onedrive/onedrive.go @@ -990,8 +990,9 @@ func (f *Fs) Move(src fs.Object, remote string) (fs.Object, error) { } id, dstDriveID, _ := parseNormalizedID(directoryID) + _, srcObjDriveID, _ := parseNormalizedID(srcObj.id) - if dstDriveID != srcObj.fs.driveID { + if dstDriveID != srcObjDriveID { // https://docs.microsoft.com/en-us/graph/api/driveitem-move?view=graph-rest-1.0 // "Items cannot be moved between Drives using this request." return nil, fs.ErrorCantMove @@ -1082,7 +1083,14 @@ func (f *Fs) DirMove(src fs.Fs, srcRemote, dstRemote string) error { } parsedDstDirID, dstDriveID, _ := parseNormalizedID(dstDirectoryID) - if dstDriveID != srcFs.driveID { + // Find ID of src + srcID, err := srcFs.dirCache.FindDir(srcRemote, false) + if err != nil { + return err + } + _, srcDriveID, _ := parseNormalizedID(srcID) + + if dstDriveID != srcDriveID { // https://docs.microsoft.com/en-us/graph/api/driveitem-move?view=graph-rest-1.0 // "Items cannot be moved between Drives using this request." return fs.ErrorCantDirMove @@ -1100,12 +1108,6 @@ func (f *Fs) DirMove(src fs.Fs, srcRemote, dstRemote string) error { } } - // Find ID of src - srcID, err := srcFs.dirCache.FindDir(srcRemote, false) - if err != nil { - return err - } - // Get timestamps of src so they can be preserved srcInfo, _, err := srcFs.readMetaDataForPathRelativeToID(srcID, "") if err != nil {