forked from tcp.direct/tcp.ac
1
0
Fork 0
tcp.ac/router.go

109 lines
2.1 KiB
Go

package main
import (
"gopkg.in/natefinch/lumberjack.v2"
"github.com/prologic/bitcask"
"github.com/gin-gonic/gin"
"fmt"
"log"
)
var imgDB *bitcask.Bitcask
var hashDB *bitcask.Bitcask
var keyDB *bitcask.Bitcask
var urlDB *bitcask.Bitcask
var txtDB *bitcask.Bitcask
var errLog *log.Logger
var baseUrl string = "http://127.0.0.1:8081/"
var debugBool bool = true
func errThrow(c *gin.Context, respcode int, Error string, msg string) {
errLog.Println(c.ClientIP() + ": " + Error)
if debugBool {
c.String(respcode, msg)
}
}
//////////////////////////////////////////////////////
func txtPost(c *gin.Context) {
return
}
//////////////////////////////////////////////////////
func urlPost(c *gin.Context) {
return
}
//////////////////////////////////////////////////////
func init() {
fmt.Println("Initializing...")
//////////// init logging ////////////
fmt.Println("Starting error logger")
Logger := &lumberjack.Logger{
Filename: "error.log",
MaxSize: 50, // megabytes
MaxBackups: 8,
MaxAge: 28, // days
Compress: true,
}
errLog = log.New(Logger, "", log.Ldate|log.Ltime|log.Lshortfile)
/////////////////////////////////////
/////////// init databases //////////
opts := []bitcask.Option {
bitcask.WithMaxValueSize(24 / 1024 / 1024),
}
keyDB, _ = bitcask.Open("./data/key", opts...)
fmt.Println("Initializing key database")
imgDB, _ = bitcask.Open("./data/img", opts...)
fmt.Println("Initializing img database")
hashDB, _ = bitcask.Open("./data/hsh", opts...) // this will probably only be for images
fmt.Println("Initializing md5 database")
txtDB, _ = bitcask.Open("./data/txt")
fmt.Println("Initializing txt database")
urlDB, _ = bitcask.Open("./data/url")
fmt.Println("Initializing url database")
////////////////////////////////////
}
func main() {
router := gin.Default()
router.MaxMultipartMemory = 16 << 20
imgR := router.Group("/i")
{
imgR.POST("/put", imgPost)
imgR.GET("/:uid", imgView)
}
delR := router.Group("/d")
{
delR.GET("/i/:key", imgDel)
}
txtR := router.Group("/t")
{
txtR.POST("/put", txtPost)
}
urlR := router.Group("/u")
{
urlR.POST("/put", urlPost)
}
router.Run(":8081")
}