Merge pull request #2070 from kdada/master

filter listResponse.Contents in OSS driver.List()
This commit is contained in:
Derek McGowan 2016-12-05 10:23:46 -08:00 committed by GitHub
commit 314144ac0b

View File

@ -351,7 +351,8 @@ func (d *driver) List(ctx context.Context, opath string) ([]string, error) {
prefix = "/" prefix = "/"
} }
listResponse, err := d.Bucket.List(d.ossPath(path), "/", "", listMax) ossPath := d.ossPath(path)
listResponse, err := d.Bucket.List(ossPath, "/", "", listMax)
if err != nil { if err != nil {
return nil, parseError(opath, err) return nil, parseError(opath, err)
} }
@ -369,7 +370,7 @@ func (d *driver) List(ctx context.Context, opath string) ([]string, error) {
} }
if listResponse.IsTruncated { if listResponse.IsTruncated {
listResponse, err = d.Bucket.List(d.ossPath(path), "/", listResponse.NextMarker, listMax) listResponse, err = d.Bucket.List(ossPath, "/", listResponse.NextMarker, listMax)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -378,6 +379,11 @@ func (d *driver) List(ctx context.Context, opath string) ([]string, error) {
} }
} }
// This is to cover for the cases when the first key equal to ossPath.
if len(files) > 0 && files[0] == strings.Replace(ossPath, d.ossPath(""), prefix, 1) {
files = files[1:]
}
if opath != "/" { if opath != "/" {
if len(files) == 0 && len(directories) == 0 { if len(files) == 0 && len(directories) == 0 {
// Treat empty response as missing directory, since we don't actually // Treat empty response as missing directory, since we don't actually