From 93423a0812bb5ed489f8798e92673ee900a88e48 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Tue, 18 Jul 2017 23:38:48 +0100 Subject: [PATCH] swift: fix zero length directory markekrs showing in the subdirectory listing This was causing lots of duplicated files to be copied. --- swift/swift.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/swift/swift.go b/swift/swift.go index 770c81d25..5118b9aeb 100644 --- a/swift/swift.go +++ b/swift/swift.go @@ -297,10 +297,16 @@ func (f *Fs) listContainerRoot(container, root string, dir string, recurse bool, if !recurse { isDirectory = strings.HasSuffix(object.Name, "/") } - if !strings.HasPrefix(object.Name, root) { + if !strings.HasPrefix(object.Name, prefix) { fs.Logf(f, "Odd name received %q", object.Name) continue } + if object.Name == prefix { + // If we have zero length directory markers ending in / then swift + // will return them in the listing for the directory which causes + // duplicate directories. Ignore them here. + continue + } remote := object.Name[rootLength:] err = fn(remote, object, isDirectory) if err != nil {