aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Lebedev <9497591+kmlebedev@users.noreply.github.com>2023-11-13 15:25:17 +0500
committerChris Lu <chrislusf@users.noreply.github.com>2023-11-13 06:22:23 -0800
commit7f6152f13034f354f226af2be3c658ceb14e6e73 (patch)
tree5343247effbcfa4afb251faa4ea794084ff65bee
parentb05d682c4819373768f5435b82668d3312cd8752 (diff)
downloadseaweedfs-7f6152f13034f354f226af2be3c658ceb14e6e73.tar.xz
seaweedfs-7f6152f13034f354f226af2be3c658ceb14e6e73.zip
s3 api add default response for GetBucketVersioning
-rw-r--r--weed/s3api/s3api_bucket_handlers.go17
-rw-r--r--weed/s3api/s3api_server.go3
2 files changed, 20 insertions, 0 deletions
diff --git a/weed/s3api/s3api_bucket_handlers.go b/weed/s3api/s3api_bucket_handlers.go
index 3bf5a598b..c1bb815a9 100644
--- a/weed/s3api/s3api_bucket_handlers.go
+++ b/weed/s3api/s3api_bucket_handlers.go
@@ -533,3 +533,20 @@ func (s3a *S3ApiServer) DeleteBucketOwnershipControls(w http.ResponseWriter, r *
}
s3err.WriteAwsXMLResponse(w, r, http.StatusOK, emptyOwnershipControls)
}
+
+// GetBucketVersioningHandler Get Bucket Versioning status
+// https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html
+func (s3a *S3ApiServer) GetBucketVersioningHandler(w http.ResponseWriter, r *http.Request) {
+ bucket, _ := s3_constants.GetBucketAndObject(r)
+ glog.V(3).Infof("GetBucketVersioning %s", bucket)
+
+ if err := s3a.checkBucket(r, bucket); err != s3err.ErrNone {
+ s3err.WriteErrorResponse(w, r, err)
+ return
+ }
+
+ result := &s3.VersioningConfiguration{}
+ result.SetStatus(s3.BucketVersioningStatusSuspended)
+
+ s3err.WriteAwsXMLResponse(w, r, http.StatusOK, result)
+}
diff --git a/weed/s3api/s3api_server.go b/weed/s3api/s3api_server.go
index 1767090f1..6d2ea8f0d 100644
--- a/weed/s3api/s3api_server.go
+++ b/weed/s3api/s3api_server.go
@@ -222,6 +222,9 @@ func (s3a *S3ApiServer) registerRouter(router *mux.Router) {
// GetBucketRequestPayment
bucket.Methods("GET").HandlerFunc(track(s3a.iam.Auth(s3a.cb.Limit(s3a.GetBucketRequestPaymentHandler, ACTION_READ)), "GET")).Queries("requestPayment", "")
+ // GetBucketVersioning
+ bucket.Methods("GET").HandlerFunc(track(s3a.iam.Auth(s3a.cb.Limit(s3a.GetBucketVersioningHandler, ACTION_READ)), "GET")).Queries("versioning", "")
+
// ListObjectsV2
bucket.Methods("GET").HandlerFunc(track(s3a.iam.Auth(s3a.cb.Limit(s3a.ListObjectsV2Handler, ACTION_LIST)), "LIST")).Queries("list-type", "2")