forked from TrueCloudLab/distribution
Fix S3 driver's list when the root directory is either "" or "/"
This commit is contained in:
parent
da5510b55e
commit
df71f3451a
1 changed files with 11 additions and 2 deletions
|
@ -587,6 +587,15 @@ func (d *driver) List(path string) ([]string, error) {
|
||||||
if path != "/" && path[len(path)-1] != '/' {
|
if path != "/" && path[len(path)-1] != '/' {
|
||||||
path = path + "/"
|
path = path + "/"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is to cover for the cases when the rootDirectory of the driver is either "" or "/".
|
||||||
|
// In those cases, there is no root prefix to replace and we must actually add a "/" to all
|
||||||
|
// results in order to keep them as valid paths as recognized by storagedriver.PathRegexp
|
||||||
|
prefix := ""
|
||||||
|
if d.s3Path("") == "" {
|
||||||
|
prefix = "/"
|
||||||
|
}
|
||||||
|
|
||||||
listResponse, err := d.Bucket.List(d.s3Path(path), "/", "", listMax)
|
listResponse, err := d.Bucket.List(d.s3Path(path), "/", "", listMax)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -597,11 +606,11 @@ func (d *driver) List(path string) ([]string, error) {
|
||||||
|
|
||||||
for {
|
for {
|
||||||
for _, key := range listResponse.Contents {
|
for _, key := range listResponse.Contents {
|
||||||
files = append(files, strings.Replace(key.Key, d.s3Path(""), "", 1))
|
files = append(files, strings.Replace(key.Key, d.s3Path(""), prefix, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, commonPrefix := range listResponse.CommonPrefixes {
|
for _, commonPrefix := range listResponse.CommonPrefixes {
|
||||||
directories = append(directories, strings.Replace(commonPrefix[0:len(commonPrefix)-1], d.s3Path(""), "", 1))
|
directories = append(directories, strings.Replace(commonPrefix[0:len(commonPrefix)-1], d.s3Path(""), prefix, 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
if listResponse.IsTruncated {
|
if listResponse.IsTruncated {
|
||||||
|
|
Loading…
Reference in a new issue