Merge pull request #747 from harshavardhana/pr_out_for_missing_parts_reply_back_as_invalidpart_

For missing parts reply back as InvalidPart{}
master
Harshavardhana 9 years ago
commit 00acc47158
  1. 7
      pkg/donut/errors.go
  2. 2
      pkg/donut/multipart.go
  3. 2
      pkg/server/api/object-handlers.go

@ -335,6 +335,13 @@ func (e MissingDateHeader) Error() string {
return "Missing date header" return "Missing date header"
} }
// InvalidPart One or more of the specified parts could not be found
type InvalidPart struct{}
func (e InvalidPart) Error() string {
return "One or more of the specified parts could not be found"
}
// InvalidPartOrder parts are not ordered as Requested // InvalidPartOrder parts are not ordered as Requested
type InvalidPartOrder struct { type InvalidPartOrder struct {
UploadID string UploadID string

@ -286,7 +286,7 @@ func (donut API) CompleteMultipartUpload(bucket, key, uploadID string, data io.R
object, ok := donut.multiPartObjects[uploadID].Get(parts.Part[i].PartNumber) object, ok := donut.multiPartObjects[uploadID].Get(parts.Part[i].PartNumber)
if ok == false { if ok == false {
donut.lock.Unlock() donut.lock.Unlock()
return ObjectMetadata{}, iodine.New(errors.New("missing part: "+strconv.Itoa(parts.Part[i].PartNumber)), nil) return ObjectMetadata{}, iodine.New(InvalidPart{}, nil)
} }
size += int64(len(object)) size += int64(len(object))
calcMD5Bytes := md5.Sum(object) calcMD5Bytes := md5.Sum(object)

@ -558,6 +558,8 @@ func (api Minio) CompleteMultipartUploadHandler(w http.ResponseWriter, req *http
} }
case donut.InvalidUploadID: case donut.InvalidUploadID:
writeErrorResponse(w, req, NoSuchUpload, acceptsContentType, req.URL.Path) writeErrorResponse(w, req, NoSuchUpload, acceptsContentType, req.URL.Path)
case donut.InvalidPart:
writeErrorResponse(w, req, InvalidPart, acceptsContentType, req.URL.Path)
case donut.InvalidPartOrder: case donut.InvalidPartOrder:
writeErrorResponse(w, req, InvalidPartOrder, acceptsContentType, req.URL.Path) writeErrorResponse(w, req, InvalidPartOrder, acceptsContentType, req.URL.Path)
case donut.MissingDateHeader: case donut.MissingDateHeader:

Loading…
Cancel
Save