diff options
Diffstat (limited to 'weed/s3api/s3api_handlers.go')
| -rw-r--r-- | weed/s3api/s3api_handlers.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/weed/s3api/s3api_handlers.go b/weed/s3api/s3api_handlers.go index 229b3a740..13dfc8d15 100644 --- a/weed/s3api/s3api_handlers.go +++ b/weed/s3api/s3api_handlers.go @@ -11,6 +11,7 @@ import ( "github.com/chrislusf/seaweedfs/weed/util" "bytes" "encoding/xml" + "encoding/base64" ) type mimeType string @@ -93,3 +94,14 @@ func writeSuccessResponseXML(w http.ResponseWriter, response []byte) { func writeSuccessResponseEmpty(w http.ResponseWriter) { writeResponse(w, http.StatusOK, nil, mimeNone) } + +func validateContentMd5(h http.Header) ([]byte, error) { + md5B64, ok := h["Content-Md5"] + if ok { + if md5B64[0] == "" { + return nil, fmt.Errorf("Content-Md5 header set to empty value") + } + return base64.StdEncoding.DecodeString(md5B64[0]) + } + return []byte{}, nil +} |
