diff --git a/mqtt_processor/mqtt_processor.go b/mqtt_processor/mqtt_processor.go
index e965702..35c067f 100644
--- a/mqtt_processor/mqtt_processor.go
+++ b/mqtt_processor/mqtt_processor.go
@@ -2,9 +2,12 @@
 
 import (
 	"bufio"
+	"bytes"
 	"context"
 	"encoding/json"
 	"fmt"
+	"io"
+	"io/ioutil"
 	"net/url"
 	"strings"
 	"time"
@@ -53,13 +56,27 @@
 	return email.TextBody == "Y-Token: "+config.EmailToken
 }
 
+func getSize(stream io.Reader) (io.Reader, int, error) {
+	b, err := ioutil.ReadAll(stream)
+	if err != nil {
+		return nil, -1, err
+	}
+
+	r := bytes.NewReader(b)
+	return r, r.Len(), nil
+}
+
 func uploadImage(email *parsemail.Email, cameraID string, config *MQTTConfig, s3c *minio.Client) (string, error) {
 	for _, a := range email.Attachments {
 		if strings.HasPrefix(a.ContentType, "image") {
 			// Upload image
 			ctx := context.Background()
 			fileName := cameraID + "/" + a.Filename
-			n, err := s3c.PutObject(ctx, config.S3Bucket, fileName, a.Data, -1, minio.PutObjectOptions{ContentType: a.ContentType})
+			data, size, err := getSize(a.Data)
+			if err != nil {
+				return "", err
+			}
+			n, err := s3c.PutObject(ctx, config.S3Bucket, fileName, data, int64(size), minio.PutObjectOptions{ContentType: a.ContentType})
 			if err != nil {
 				return "", err
 			}
