aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/filer/filer.go10
-rw-r--r--weed/server/filer_grpc_server.go4
2 files changed, 6 insertions, 8 deletions
diff --git a/weed/filer/filer.go b/weed/filer/filer.go
index 9fceb879c..dc182f92b 100644
--- a/weed/filer/filer.go
+++ b/weed/filer/filer.go
@@ -440,13 +440,9 @@ func (f *Filer) doListDirectoryEntries(ctx context.Context, p util.FullPath, sta
var stopAtPath util.FullPath
if strings.HasPrefix(string(p), f.DirBucketsPath+"/") {
// S3 path: stop at the bucket root (e.g., /buckets/mybucket)
- pathAfterBuckets := string(p)[len(f.DirBucketsPath)+1:]
- parts := strings.SplitN(pathAfterBuckets, "/", 2)
- if len(parts) > 0 {
- stopAtPath = util.NewFullPath(f.DirBucketsPath, parts[0])
- } else {
- stopAtPath = util.FullPath(f.DirBucketsPath)
- }
+ pathAfterBuckets := strings.TrimPrefix(string(p), f.DirBucketsPath+"/")
+ bucketName, _, _ := strings.Cut(pathAfterBuckets, "/")
+ stopAtPath = util.NewFullPath(f.DirBucketsPath, bucketName)
} else {
// Non-S3 path: allow cleanup up to root
stopAtPath = "/"
diff --git a/weed/server/filer_grpc_server.go b/weed/server/filer_grpc_server.go
index 6a2a3d28f..34c5eb773 100644
--- a/weed/server/filer_grpc_server.go
+++ b/weed/server/filer_grpc_server.go
@@ -305,7 +305,9 @@ func (fs *FilerServer) DeleteEntry(ctx context.Context, req *filer_pb.DeleteEntr
if req.DeleteEmptyParentDirectories {
stopAtPath := util.FullPath(req.DeleteEmptyParentDirectoriesStopPath)
if stopAtPath == "" {
- stopAtPath = util.FullPath(fs.filer.DirBucketsPath)
+ // Default to root to allow cleanup for non-S3 paths
+ // S3 API clients provide a specific bucket stop path
+ stopAtPath = "/"
}
// Clean up empty parent directories starting from req.Directory