local: revert to copy when moving file across file system boundaries – fixes #1176
This commit is contained in:
parent
230e65313a
commit
861e125a4f
1 changed files with 9 additions and 1 deletions
|
@ -472,8 +472,16 @@ func (f *Fs) Move(src fs.Object, remote string) (fs.Object, error) {
|
||||||
|
|
||||||
// Do the move
|
// Do the move
|
||||||
err = os.Rename(srcObj.path, dstObj.path)
|
err = os.Rename(srcObj.path, dstObj.path)
|
||||||
if err != nil {
|
if os.IsNotExist(err) {
|
||||||
|
// race condition, source was deleted in the meantime
|
||||||
return nil, err
|
return nil, err
|
||||||
|
} else if os.IsPermission(err) {
|
||||||
|
// not enough rights to write to dst
|
||||||
|
return nil, err
|
||||||
|
} else if err != nil {
|
||||||
|
// not quite clear, but probably trying to move a file across file system
|
||||||
|
// boundaries. Copying might still work.
|
||||||
|
return nil, fs.ErrorCantMove
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the info
|
// Update the info
|
||||||
|
|
Loading…
Reference in a new issue