diff --git a/backend/local/local.go b/backend/local/local.go index 3a4f0b2de..39e420e0e 100644 --- a/backend/local/local.go +++ b/backend/local/local.go @@ -1201,7 +1201,15 @@ func (o *Object) Storable() bool { o.fs.objectMetaMu.RLock() mode := o.mode o.fs.objectMetaMu.RUnlock() - if mode&os.ModeSymlink != 0 && !o.fs.opt.TranslateSymlinks { + + // On Windows items with os.ModeIrregular are likely Junction + // points so we treat them as symlinks for the purpose of ignoring them. + // https://github.com/golang/go/issues/73827 + symlinkFlag := os.ModeSymlink + if runtime.GOOS == "windows" { + symlinkFlag |= os.ModeIrregular + } + if mode&symlinkFlag != 0 && !o.fs.opt.TranslateSymlinks { if !o.fs.opt.SkipSymlinks { fs.Logf(o, "Can't follow symlink without -L/--copy-links") }