aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiao Wei <403828237@qq.com>2025-12-04 02:23:59 +0800
committerGitHub <noreply@github.com>2025-12-03 10:23:59 -0800
commit3bcadc9f9052d40ab38dc0cc407065ab5cc10061 (patch)
treec27922ab75e8cae39d407fecedfcf0765bbc73bd
parente9da64f62a141d06dd1cd913a739b91cad016dce (diff)
downloadseaweedfs-3bcadc9f9052d40ab38dc0cc407065ab5cc10061.tar.xz
seaweedfs-3bcadc9f9052d40ab38dc0cc407065ab5cc10061.zip
fix: update getVersioningState to signal non-existent buckets with Er… (#7613)
* fix: update getVersioningState to signal non-existent buckets with ErrNotFound This change modifies the getVersioningState function to return filer_pb.ErrNotFound when a requested bucket does not exist, allowing callers to handle the situation appropriately, such as auto-creating the bucket in PUT handlers. This improves error handling and clarity in the API's behavior regarding bucket existence. * Update weed/s3api/s3api_bucket_config.go Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --------- Co-authored-by: 洪晓威 <xiaoweihong@deepglint.com> Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
-rw-r--r--weed/s3api/s3api_bucket_config.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/weed/s3api/s3api_bucket_config.go b/weed/s3api/s3api_bucket_config.go
index 00449d80a..a10374339 100644
--- a/weed/s3api/s3api_bucket_config.go
+++ b/weed/s3api/s3api_bucket_config.go
@@ -519,7 +519,9 @@ func (s3a *S3ApiServer) getVersioningState(bucket string) (string, error) {
config, errCode := s3a.getBucketConfig(bucket)
if errCode != s3err.ErrNone {
if errCode == s3err.ErrNoSuchBucket {
- return "", nil
+ // Signal to callers that the bucket does not exist so they can
+ // decide whether to auto-create it (e.g., in PUT handlers).
+ return "", filer_pb.ErrNotFound
}
glog.Errorf("getVersioningState: failed to get bucket config for %s: %v", bucket, errCode)
return "", fmt.Errorf("failed to get bucket config: %v", errCode)