aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2025-02-01 13:26:12 -0800
committerchrislu <chris.lu@gmail.com>2025-02-01 13:26:12 -0800
commita75271dd43fcec0105ee1fda156622df45a8b2cd (patch)
tree0ad3d2a639e94a5cc3aee0f246979b83fdad8630
parentfc4df944a0dd807db4f9e16dbdf8fc8d96b19c96 (diff)
downloadseaweedfs-a75271dd43fcec0105ee1fda156622df45a8b2cd.tar.xz
seaweedfs-a75271dd43fcec0105ee1fda156622df45a8b2cd.zip
ensure correct auto bucket creation
fix https://github.com/seaweedfs/seaweedfs/issues/6497
-rw-r--r--weed/filer/filer.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/weed/filer/filer.go b/weed/filer/filer.go
index 80be0b88e..df377a135 100644
--- a/weed/filer/filer.go
+++ b/weed/filer/filer.go
@@ -3,6 +3,7 @@ package filer
import (
"context"
"fmt"
+ "github.com/seaweedfs/seaweedfs/weed/s3api/s3bucket"
"os"
"sort"
"strings"
@@ -256,6 +257,12 @@ func (f *Filer) ensureParentDirectoryEntry(ctx context.Context, entry *Entry, di
// no such existing directory
if dirEntry == nil {
+ if len(dirParts) >= 2 && level == 2 && dirParts[0] == "buckets" {
+ if err := s3bucket.VerifyS3BucketName(dirParts[1]); err != nil {
+ return fmt.Errorf("invalid bucket name %s: %v", dirParts[1], err)
+ }
+ }
+
// ensure parent directory
if err = f.ensureParentDirectoryEntry(ctx, entry, dirParts, level-1, isFromOtherCluster); err != nil {
return err