Browse Source
Merge pull request #2840 from kmlebedev/fix_multi_object_delete_key_limit
fix test_s3.test_multi_object_delete_key_limit and test_multi_objectv2_delete_key_limit
pull/2850/head
Chris Lu
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
15 additions and
0 deletions
-
weed/s3api/s3api_object_handlers.go
-
weed/s3api/s3err/s3api_errors.go
|
@ -27,6 +27,10 @@ import ( |
|
|
"github.com/chrislusf/seaweedfs/weed/util" |
|
|
"github.com/chrislusf/seaweedfs/weed/util" |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
const ( |
|
|
|
|
|
deleteMultipleObjectsLimmit = 1000 |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
func mimeDetect(r *http.Request, dataReader io.Reader) io.ReadCloser { |
|
|
func mimeDetect(r *http.Request, dataReader io.Reader) io.ReadCloser { |
|
|
mimeBuffer := make([]byte, 512) |
|
|
mimeBuffer := make([]byte, 512) |
|
|
size, _ := dataReader.Read(mimeBuffer) |
|
|
size, _ := dataReader.Read(mimeBuffer) |
|
@ -217,6 +221,11 @@ func (s3a *S3ApiServer) DeleteMultipleObjectsHandler(w http.ResponseWriter, r *h |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if len(deleteObjects.Objects) > deleteMultipleObjectsLimmit { |
|
|
|
|
|
s3err.WriteErrorResponse(w, r, s3err.ErrInvalidMaxDeleteObjects) |
|
|
|
|
|
return |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
var deletedObjects []ObjectIdentifier |
|
|
var deletedObjects []ObjectIdentifier |
|
|
var deleteErrors []DeleteError |
|
|
var deleteErrors []DeleteError |
|
|
var auditLog *s3err.AccessLog |
|
|
var auditLog *s3err.AccessLog |
|
|
|
@ -61,6 +61,7 @@ const ( |
|
|
ErrInvalidMaxKeys |
|
|
ErrInvalidMaxKeys |
|
|
ErrInvalidMaxUploads |
|
|
ErrInvalidMaxUploads |
|
|
ErrInvalidMaxParts |
|
|
ErrInvalidMaxParts |
|
|
|
|
|
ErrInvalidMaxDeleteObjects |
|
|
ErrInvalidPartNumberMarker |
|
|
ErrInvalidPartNumberMarker |
|
|
ErrInvalidPart |
|
|
ErrInvalidPart |
|
|
ErrInternalError |
|
|
ErrInternalError |
|
@ -157,6 +158,11 @@ var errorCodeResponse = map[ErrorCode]APIError{ |
|
|
Description: "Argument max-parts must be an integer between 0 and 2147483647", |
|
|
Description: "Argument max-parts must be an integer between 0 and 2147483647", |
|
|
HTTPStatusCode: http.StatusBadRequest, |
|
|
HTTPStatusCode: http.StatusBadRequest, |
|
|
}, |
|
|
}, |
|
|
|
|
|
ErrInvalidMaxDeleteObjects: { |
|
|
|
|
|
Code: "InvalidArgument", |
|
|
|
|
|
Description: "Argument objects can contain a list of up to 1000 keys", |
|
|
|
|
|
HTTPStatusCode: http.StatusBadRequest, |
|
|
|
|
|
}, |
|
|
ErrInvalidPartNumberMarker: { |
|
|
ErrInvalidPartNumberMarker: { |
|
|
Code: "InvalidArgument", |
|
|
Code: "InvalidArgument", |
|
|
Description: "Argument partNumberMarker must be an integer.", |
|
|
Description: "Argument partNumberMarker must be an integer.", |
|
|