appidea-picture-storage-han.../modules/picture/picture.go

46 lines
825 B
Go

package picture
import (
"bytes"
"image"
"image/jpeg"
"os"
"git.umbach.dev/picture-storage-handler/modules/structs"
log "github.com/sirupsen/logrus"
)
func Save(pictureMessage structs.RabbitmqPictureMessage) error {
img, _, err := image.Decode(bytes.NewReader(pictureMessage.Picture))
if err != nil {
log.Fatalln("imageDecod failed", err)
return err
}
err = os.Mkdir("./storage/"+pictureMessage.UserId, 0755)
if err != nil && !os.IsExist(err) {
log.Infoln("mkdir failed", err)
return err
}
out, err := os.Create("./storage/" + pictureMessage.UserId + "/" + pictureMessage.Filename)
if err != nil {
log.Infoln("osCreate failed", err)
return err
}
defer out.Close()
err = jpeg.Encode(out, img, nil)
if err != nil {
log.Println("jpegEncode failed", err)
return err
}
return nil
}