mirror of
https://github.com/pgsty/minio.git
synced 2026-08-06 15:51:14 +03:00
Now MinioAPI handles Content-MD5 set during putObject()
- This change also facilitates proper error response
in case of md5 mismatch or corruption
- TODO a test function needs to be implemented
This commit is contained in:
@@ -165,7 +165,9 @@ func (server *minioAPI) putObjectHandler(w http.ResponseWriter, req *http.Reques
|
||||
return
|
||||
}
|
||||
|
||||
err := server.storage.CreateObject(bucket, object, "", req.Body)
|
||||
// get Content-MD5 sent by client
|
||||
md5 := req.Header.Get("Content-MD5")
|
||||
err := server.storage.CreateObject(bucket, object, "", md5, req.Body)
|
||||
switch err := err.(type) {
|
||||
case nil:
|
||||
w.Header().Set("Server", "Minio")
|
||||
@@ -200,6 +202,20 @@ func (server *minioAPI) putObjectHandler(w http.ResponseWriter, req *http.Reques
|
||||
w.WriteHeader(error.HTTPStatusCode)
|
||||
w.Write(writeErrorResponse(w, errorResponse, acceptsContentType))
|
||||
}
|
||||
case mstorage.BadDigest:
|
||||
{
|
||||
error := errorCodeError(BadDigest)
|
||||
errorResponse := getErrorResponse(error, "/"+bucket+"/"+object)
|
||||
w.WriteHeader(error.HTTPStatusCode)
|
||||
w.Write(writeErrorResponse(w, errorResponse, acceptsContentType))
|
||||
}
|
||||
case mstorage.InvalidDigest:
|
||||
{
|
||||
error := errorCodeError(InvalidDigest)
|
||||
errorResponse := getErrorResponse(error, "/"+bucket+"/"+object)
|
||||
w.WriteHeader(error.HTTPStatusCode)
|
||||
w.Write(writeErrorResponse(w, errorResponse, acceptsContentType))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user