mirror of
https://github.com/rclone/rclone.git
synced 2025-12-15 15:53:41 +00:00
memory: fix incorrect list entries when rooted at subdirectory
Before this change, List would return incorrect directory paths (relative to the wrong root) if the Fs root pointed to a subdirectory. For example, listing dir "a/b/c/d" of remote :memory: would work correctly, but listing dir "c/d" of remote :memory:a/b would not, and would result in "Entry doesn't belong in directory %q (contains subdir)" errors. This change fixes the issue and adds a test to detect any other backends that might have the same issue.
This commit is contained in:
@@ -296,7 +296,7 @@ func (f *Fs) list(ctx context.Context, bucket, directory, prefix string, addBuck
|
||||
slash := strings.IndexRune(localPath, '/')
|
||||
if slash >= 0 {
|
||||
// send a directory if have a slash
|
||||
dir := directory + localPath[:slash]
|
||||
dir := strings.TrimPrefix(directory, f.rootDirectory+"/") + localPath[:slash]
|
||||
if addBucket {
|
||||
dir = path.Join(bucket, dir)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user