swift: fix zero length directory markekrs showing in the subdirectory listing

This was causing lots of duplicated files to be copied.
This commit is contained in:
Nick Craig-Wood 2017-07-18 23:38:48 +01:00
parent 78f33f5d6e
commit 93423a0812
1 changed files with 7 additions and 1 deletions

View File

@ -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 {