diff --git a/weed/s3api/s3_constants/header.go b/weed/s3api/s3_constants/header.go index 70f02e1cd..39529f7bc 100644 --- a/weed/s3api/s3_constants/header.go +++ b/weed/s3api/s3_constants/header.go @@ -45,6 +45,12 @@ const ( AmzObjectTaggingDirective = "X-Amz-Tagging-Directive" AmzTagCount = "x-amz-tagging-count" + // GetObjectAttributes headers + AmzObjectAttributes = "X-Amz-Object-Attributes" + AmzMaxParts = "X-Amz-Max-Parts" + AmzPartNumberMarker = "X-Amz-Part-Number-Marker" + AmzDeleteMarker = "X-Amz-Delete-Marker" + SeaweedFSUploadId = "X-Seaweedfs-Upload-Id" SeaweedFSMultipartPartsCount = "X-Seaweedfs-Multipart-Parts-Count" SeaweedFSMultipartPartBoundaries = "X-Seaweedfs-Multipart-Part-Boundaries" // JSON: [{part:1,start:0,end:2,etag:"abc"},{part:2,start:2,end:3,etag:"def"}] diff --git a/weed/s3api/s3err/s3api_errors.go b/weed/s3api/s3err/s3api_errors.go index 215d90262..309f543fb 100644 --- a/weed/s3api/s3err/s3api_errors.go +++ b/weed/s3api/s3err/s3api_errors.go @@ -143,6 +143,8 @@ const ( // Bucket encryption errors ErrNoSuchBucketEncryptionConfiguration ErrInvalidStorageClass + + ErrInvalidAttributeName ) // Error message constants for checksum validation @@ -600,6 +602,12 @@ var errorCodeResponse = map[ErrorCode]APIError{ Description: "The storage class you specified is not valid", HTTPStatusCode: http.StatusBadRequest, }, + + ErrInvalidAttributeName: { + Code: "InvalidArgument", + Description: "Invalid attribute name specified", + HTTPStatusCode: http.StatusBadRequest, + }, } // GetAPIError provides API Error for input API error code.