Merge pull request #747 from harshavardhana/pr_out_for_missing_parts_reply_back_as_invalidpart_

For missing parts reply back as InvalidPart{}
This commit is contained in:
Harshavardhana 2015-07-14 02:32:56 +00:00
commit 00acc47158
3 changed files with 10 additions and 1 deletions

View File

@ -335,6 +335,13 @@ func (e MissingDateHeader) Error() string {
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
type InvalidPartOrder struct {
UploadID string

View File

@ -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)
if ok == false {
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))
calcMD5Bytes := md5.Sum(object)

View File

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