fix(image):
This commit is contained in:
parent
2b8745679f
commit
040c3c7751
6 changed files with 459 additions and 437 deletions
|
|
@ -189,7 +189,7 @@ var (
|
|||
func NewData(taoLogger *logger.TaoLogger, redisClient *RedisCli) *Data {
|
||||
|
||||
allRecipeFiles := helpers.ScanRecipeFiles(helpers.LoadCountrySettings())
|
||||
fmt.Println(allRecipeFiles)
|
||||
// fmt.Println(allRecipeFiles)
|
||||
|
||||
defaultFile := "coffeethai02_600.json"
|
||||
|
||||
|
|
|
|||
|
|
@ -801,49 +801,70 @@ func (rr *RecipeRouter) getImageOfProductCode(w http.ResponseWriter, r *http.Req
|
|||
// img_dir := "taobin_project/image/page_drink_picture2_n/"
|
||||
|
||||
// new img dir
|
||||
img_dir := "cofffeemachineConfig/" + countryID + "/.img/"
|
||||
// img_dir := "cofffeemachineConfig/" + countryID + "/.img/"
|
||||
|
||||
fullPath := img_dir + uriName
|
||||
rr.taoLogger.Log.Debug("RecipeRouter.getImageOfProductCode", zap.Any("fullPath", fullPath))
|
||||
// fullPath := img_dir + uriName
|
||||
// rr.taoLogger.Log.Debug("RecipeRouter.getImageOfProductCode", zap.Any("fullPath", fullPath))
|
||||
|
||||
// check if image file exists
|
||||
if _, err := os.Stat(fullPath); os.IsNotExist(err) {
|
||||
http.Error(w, "Image not found", http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
// if _, err := os.Stat(fullPath); os.IsNotExist(err) {
|
||||
// http.Error(w, "Image not found", http.StatusNotFound)
|
||||
// return
|
||||
// }
|
||||
|
||||
// TODO: get from cache
|
||||
var imgResult image.Image
|
||||
// try cache
|
||||
img, err := rr.cache_db.GetCacheImage(fullPath)
|
||||
// img, err := rr.cache_db.GetCacheImage(fullPath)
|
||||
// if err != nil {
|
||||
// // read image
|
||||
// imgFile, err := os.Open(fullPath)
|
||||
// if err != nil {
|
||||
// http.Error(w, err.Error(), http.StatusNotFound)
|
||||
// return
|
||||
// }
|
||||
// defer imgFile.Close()
|
||||
|
||||
// thisImage, err := png.Decode(imgFile)
|
||||
// if err != nil {
|
||||
// http.Error(w, err.Error(), http.StatusNotFound)
|
||||
// return
|
||||
// }
|
||||
|
||||
// imgResult = thisImage
|
||||
|
||||
// // set cache
|
||||
// err = rr.cache_db.SetImageToCache(fullPath, thisImage)
|
||||
// if err != nil {
|
||||
// rr.taoLogger.Log.Debug("CacheImage.SetError", zap.Any("error", err))
|
||||
// }
|
||||
|
||||
// } else {
|
||||
// imgResult = img
|
||||
// rr.taoLogger.Log.Debug("CacheImage.OK", zap.Any("status", imgResult))
|
||||
// }
|
||||
|
||||
// New: try load from another server
|
||||
//
|
||||
|
||||
cli := http.Client{}
|
||||
resp, err := cli.Get("http://localhost:36527/image/" + uriName)
|
||||
if err != nil {
|
||||
// read image
|
||||
imgFile, err := os.Open(fullPath)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
defer imgFile.Close()
|
||||
|
||||
thisImage, err := png.Decode(imgFile)
|
||||
if err != nil {
|
||||
http.Error(w, err.Error(), http.StatusNotFound)
|
||||
return
|
||||
}
|
||||
|
||||
imgResult = thisImage
|
||||
|
||||
// set cache
|
||||
err = rr.cache_db.SetImageToCache(fullPath, thisImage)
|
||||
if err != nil {
|
||||
rr.taoLogger.Log.Debug("CacheImage.SetError", zap.Any("error", err))
|
||||
}
|
||||
|
||||
} else {
|
||||
imgResult = img
|
||||
rr.taoLogger.Log.Debug("CacheImage.OK", zap.Any("status", imgResult))
|
||||
rr.taoLogger.Log.Debug("ImgGetFromFastErr", zap.Any("Error", err.Error()))
|
||||
http.Error(w, err.Error(), http.StatusNotFound)
|
||||
}
|
||||
|
||||
rr.taoLogger.Log.Debug("GetImageFromFast", zap.Int("Code", resp.StatusCode));
|
||||
|
||||
img_data, err := png.Decode(resp.Body)
|
||||
if err != nil {
|
||||
rr.taoLogger.Log.Error("ReadFromFastRespErr", zap.Any("Error", err.Error()))
|
||||
}
|
||||
resp.Body.Close()
|
||||
|
||||
imgResult = img_data
|
||||
|
||||
|
||||
// write image
|
||||
png.Encode(w, imgResult)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,7 @@ package logger
|
|||
import (
|
||||
"os"
|
||||
"recipe-manager/config"
|
||||
"time"
|
||||
|
||||
"github.com/natefinch/lumberjack"
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
|
@ -22,36 +20,32 @@ func (tl *TaoLogger) initConfig() *zap.Logger {
|
|||
return lvl >= zap.InfoLevel || tl.enableDebug
|
||||
})
|
||||
|
||||
logCore := zapcore.NewTee(
|
||||
zapcore.NewCore(zapcore.NewJSONEncoder(zapcore.EncoderConfig{
|
||||
TimeKey: "timestamp",
|
||||
LevelKey: "level",
|
||||
NameKey: "logger",
|
||||
CallerKey: "caller",
|
||||
MessageKey: "message",
|
||||
StacktraceKey: "error",
|
||||
EncodeLevel: zapcore.LowercaseLevelEncoder,
|
||||
EncodeTime: zapcore.TimeEncoderOfLayout(time.DateTime),
|
||||
}), zapcore.AddSync(&lumberjack.Logger{
|
||||
Filename: "services/logger/serverlog.log",
|
||||
MaxSize: 5, // megabytes
|
||||
MaxAge: 28, //days
|
||||
LocalTime: true,
|
||||
Compress: true,
|
||||
}), enableDebugMode),
|
||||
zapcore.NewCore(zapcore.NewConsoleEncoder(zapcore.EncoderConfig{
|
||||
TimeKey: "timestamp",
|
||||
LevelKey: "level",
|
||||
NameKey: "logger",
|
||||
CallerKey: "caller",
|
||||
MessageKey: "message",
|
||||
StacktraceKey: "error",
|
||||
EncodeLevel: zapcore.CapitalColorLevelEncoder,
|
||||
EncodeTime: zapcore.ISO8601TimeEncoder,
|
||||
}), zapcore.AddSync(os.Stdout), enableDebugMode),
|
||||
productionConfig := zap.NewProductionEncoderConfig()
|
||||
productionConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
|
||||
// fileEncoder := zapcore.NewJSONEncoder(productionConfig)
|
||||
consoleEncoder := zapcore.NewConsoleEncoder(productionConfig)
|
||||
|
||||
// logCore := zapcore.NewTee(
|
||||
// zapcore.NewCore(zapcore.NewJSONEncoder(productionConfig),
|
||||
// zapcore.NewCore(zapcore.NewConsoleEncoder(zapcore.EncoderConfig{
|
||||
// TimeKey: "timestamp",
|
||||
// LevelKey: "level",
|
||||
// NameKey: "logger",
|
||||
// CallerKey: "caller",
|
||||
// MessageKey: "message",
|
||||
// StacktraceKey: "error",
|
||||
// EncodeLevel: zapcore.CapitalColorLevelEncoder,
|
||||
// EncodeTime: zapcore.ISO8601TimeEncoder,
|
||||
// }), zapcore.AddSync(os.Stdout), enableDebugMode),
|
||||
// )
|
||||
|
||||
core := zapcore.NewTee(
|
||||
// zapcore.NewCore(fileEncoder, zapcore.AddSync(), enableDebugMode),
|
||||
zapcore.NewCore(consoleEncoder, zapcore.AddSync(os.Stdout), enableDebugMode),
|
||||
)
|
||||
|
||||
return zap.New(logCore)
|
||||
return zap.New(core)
|
||||
}
|
||||
|
||||
func NewTaoLogger(cfg *config.ServerConfig) *TaoLogger {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue