Updated server with better handling and caching
This commit is contained in:
parent
a9e9185b41
commit
262e4ec4d7
21
main.go
21
main.go
@ -11,8 +11,13 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/canhlinh/svg2png"
|
"github.com/canhlinh/svg2png"
|
||||||
"github.com/gofiber/fiber/v2"
|
|
||||||
"github.com/patrickmn/go-cache"
|
"github.com/patrickmn/go-cache"
|
||||||
|
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
fiberCache "github.com/gofiber/fiber/v2/middleware/cache"
|
||||||
|
"github.com/gofiber/fiber/v2/middleware/compress"
|
||||||
|
"github.com/gofiber/fiber/v2/middleware/cors"
|
||||||
|
"github.com/gofiber/fiber/v2/middleware/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:embed index.html svg.tmpl
|
//go:embed index.html svg.tmpl
|
||||||
@ -21,7 +26,12 @@ var content embed.FS
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
app := fiber.New()
|
app := fiber.New()
|
||||||
ch := cache.New(5*24*time.Hour, 7*24*time.Hour)
|
app.Use(fiberCache.New())
|
||||||
|
app.Use(compress.New())
|
||||||
|
app.Use(cors.New())
|
||||||
|
app.Use(logger.New())
|
||||||
|
|
||||||
|
ch := cache.New(6*time.Hour, 24*time.Hour)
|
||||||
|
|
||||||
app.Get("/", func(c *fiber.Ctx) error {
|
app.Get("/", func(c *fiber.Ctx) error {
|
||||||
c.Type("html", "UTF8")
|
c.Type("html", "UTF8")
|
||||||
@ -45,13 +55,14 @@ func main() {
|
|||||||
key := generateKey(vars)
|
key := generateKey(vars)
|
||||||
|
|
||||||
png, found := ch.Get(key)
|
png, found := ch.Get(key)
|
||||||
if !found {
|
if !found || len(png.([]byte)) == 0 {
|
||||||
var err error
|
var err error
|
||||||
png, err = generateImage(vars)
|
png, err = generateImage(vars)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
fmt.Println(err)
|
||||||
|
return c.SendStatus(500)
|
||||||
}
|
}
|
||||||
ch.Set(key, png, -1)
|
ch.Set(key, png, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Type("png")
|
c.Type("png")
|
||||||
|
Loading…
Reference in New Issue
Block a user