Fix S3 driver's list when the root directory is either "" or "/"
							parent
							
								
									da5510b55e
								
							
						
					
					
						commit
						df71f3451a
					
				|  | @ -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 New Issue