diff options
| author | Chris Lu <chris.lu@gmail.com> | 2021-05-02 21:30:37 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2021-05-02 21:30:37 -0700 |
| commit | e87e6ef33ceafcb804cc494540cae66b868ffbe3 (patch) | |
| tree | c9b1b2c3b050839cfacfbd102210ab3b46d81d64 /weed | |
| parent | a4bb37a5fee103312e2bef39bbfc071a9f9aa097 (diff) | |
| download | seaweedfs-e87e6ef33ceafcb804cc494540cae66b868ffbe3.tar.xz seaweedfs-e87e6ef33ceafcb804cc494540cae66b868ffbe3.zip | |
s3: return 404 if bucket does not exist
fix https://github.com/chrislusf/seaweedfs/issues/2039
Diffstat (limited to 'weed')
| -rw-r--r-- | weed/s3api/s3api_objects_list_handlers.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/weed/s3api/s3api_objects_list_handlers.go b/weed/s3api/s3api_objects_list_handlers.go index 739cdd8f9..66c66d280 100644 --- a/weed/s3api/s3api_objects_list_handlers.go +++ b/weed/s3api/s3api_objects_list_handlers.go @@ -63,6 +63,14 @@ func (s3a *S3ApiServer) ListObjectsV2Handler(w http.ResponseWriter, r *http.Requ writeErrorResponse(w, s3err.ErrInternalError, r.URL) return } + + if len(response.Contents) == 0 { + if exists, existErr := s3a.exists(s3a.option.BucketsPath, bucket, true); existErr == nil && !exists { + writeErrorResponse(w, s3err.ErrNoSuchBucket, r.URL) + return + } + } + responseV2 := &ListBucketResultV2{ XMLName: response.XMLName, Name: response.Name, @@ -106,6 +114,13 @@ func (s3a *S3ApiServer) ListObjectsV1Handler(w http.ResponseWriter, r *http.Requ return } + if len(response.Contents) == 0 { + if exists, existErr := s3a.exists(s3a.option.BucketsPath, bucket, true); existErr == nil && !exists { + writeErrorResponse(w, s3err.ErrNoSuchBucket, r.URL) + return + } + } + writeSuccessResponseXML(w, encodeResponse(response)) } |
