aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--weed/s3api/s3api_object_handlers.go9
1 files changed, 6 insertions, 3 deletions
diff --git a/weed/s3api/s3api_object_handlers.go b/weed/s3api/s3api_object_handlers.go
index 16f5f34f3..296501516 100644
--- a/weed/s3api/s3api_object_handlers.go
+++ b/weed/s3api/s3api_object_handlers.go
@@ -39,9 +39,12 @@ func init() {
func mimeDetect(r *http.Request, dataReader io.Reader) io.ReadCloser {
mimeBuffer := make([]byte, 512)
- dataReader.Read(mimeBuffer)
- r.Header.Set("Content-Type", http.DetectContentType(mimeBuffer))
- return io.NopCloser(io.MultiReader(bytes.NewReader(mimeBuffer), dataReader))
+ size, _ := dataReader.Read(mimeBuffer)
+ if size > 0 {
+ r.Header.Set("Content-Type", http.DetectContentType(mimeBuffer))
+ return io.NopCloser(io.MultiReader(bytes.NewReader(mimeBuffer[:size]), dataReader))
+ }
+ return io.NopCloser(dataReader)
}
func (s3a *S3ApiServer) PutObjectHandler(w http.ResponseWriter, r *http.Request) {