mirror of
https://github.com/rclone/rclone.git
synced 2024-11-07 09:04:52 +01:00
local, fs: --exclude-if-present ignores directories which it doesn't have permission for - fixes #1959
This commit is contained in:
parent
ad76dd0adc
commit
acd55a8f65
@ -178,6 +178,9 @@ func (f *Fs) newObjectWithInfo(remote, dstPath string, info os.FileInfo) (fs.Obj
|
||||
if os.IsNotExist(err) {
|
||||
return nil, fs.ErrorObjectNotFound
|
||||
}
|
||||
if os.IsPermission(err) {
|
||||
return nil, fs.ErrorPermissionDenied
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
3
fs/fs.go
3
fs/fs.go
@ -53,6 +53,7 @@ var (
|
||||
ErrorCantMoveOverlapping = errors.New("can't move files on overlapping remotes")
|
||||
ErrorDirectoryNotEmpty = errors.New("directory not empty")
|
||||
ErrorImmutableModified = errors.New("immutable file modified")
|
||||
ErrorPermissionDenied = errors.New("permission denied")
|
||||
)
|
||||
|
||||
// RegInfo provides information about a filesystem
|
||||
@ -772,7 +773,7 @@ func CheckClose(c io.Closer, err *error) {
|
||||
func FileExists(fs Fs, remote string) (bool, error) {
|
||||
_, err := fs.NewObject(remote)
|
||||
if err != nil {
|
||||
if err == ErrorObjectNotFound || err == ErrorNotAFile {
|
||||
if err == ErrorObjectNotFound || err == ErrorNotAFile || err == ErrorPermissionDenied {
|
||||
return false, nil
|
||||
}
|
||||
return false, err
|
||||
|
Loading…
Reference in New Issue
Block a user