diff options
| author | chrislu <chris.lu@gmail.com> | 2025-02-01 13:26:12 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-02-01 13:26:12 -0800 |
| commit | a75271dd43fcec0105ee1fda156622df45a8b2cd (patch) | |
| tree | 0ad3d2a639e94a5cc3aee0f246979b83fdad8630 | |
| parent | fc4df944a0dd807db4f9e16dbdf8fc8d96b19c96 (diff) | |
| download | seaweedfs-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.go | 7 |
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 |
