|
|
package main
|
|
|
|
|
|
import (
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
"gopkg.in/natefinch/lumberjack.v2"
|
|
|
"net/http"
|
|
|
"os"
|
|
|
"receive-files/config"
|
|
|
"receive-files/global"
|
|
|
"receive-files/serve"
|
|
|
)
|
|
|
|
|
|
// TODO: 程序退出 关闭日志
|
|
|
func init() {
|
|
|
// 初始化日志
|
|
|
logger := &lumberjack.Logger{
|
|
|
//Filename: "./Log/Receive_File_Log" + time.Now().Format("20060102_150405") + ".txt",
|
|
|
Filename: "./Log/Receive_File_Log.txt",
|
|
|
MaxSize: 10, // 日志文件大小,单位是 MB
|
|
|
MaxBackups: 3, // 最大过期日志保留个数
|
|
|
MaxAge: 28, // 保留过期文件最大时间,单位 天
|
|
|
Compress: true, // 是否压缩日志,默认是不压缩。这里设置为true,压缩日志
|
|
|
LocalTime: true, // 是否使用本地时间,默认是使用UTC时间
|
|
|
}
|
|
|
log.SetOutput(logger) // logrus 设置日志的输出方式
|
|
|
log.SetFormatter(&log.TextFormatter{
|
|
|
TimestampFormat: "2006-01-02 15:04:05",
|
|
|
})
|
|
|
log.Printf("[INFO] ======")
|
|
|
// 初始化配置文件
|
|
|
global.GLO_CONFIG = config.InitialConfig()
|
|
|
|
|
|
// 检查输出目录
|
|
|
_, err := os.Stat("upload")
|
|
|
if err != nil {
|
|
|
err = os.Mkdir("upload", 0755)
|
|
|
if err != nil {
|
|
|
log.Fatal("[ERROR] Could not create upload directory...")
|
|
|
return
|
|
|
}
|
|
|
log.Printf("[INFO] Created Upload Directory")
|
|
|
}
|
|
|
}
|
|
|
|
|
|
func main() {
|
|
|
// 监听目录下文件
|
|
|
//go util.ListeningDirectory("upload")
|
|
|
global.GLO_RECV_CHAN = make(chan map[string]string)
|
|
|
|
|
|
mux := http.NewServeMux()
|
|
|
mux.HandleFunc("/", serve.HandlerRoot)
|
|
|
mux.HandleFunc("/upload", serve.HandlerSingleFile)
|
|
|
|
|
|
// 监听每日申报
|
|
|
go chanHandler()
|
|
|
|
|
|
log.Printf("[INFO] Service Listener Port At %v...", global.GLO_CONFIG.Port)
|
|
|
err := http.ListenAndServe(":"+global.GLO_CONFIG.Port, mux)
|
|
|
if err != nil {
|
|
|
log.Fatalf("[FATAL] Start Server Error %s", err)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//
|
|
|
// chanHandler
|
|
|
// @Description: 信号处理
|
|
|
//
|
|
|
func chanHandler() {
|
|
|
for {
|
|
|
select {
|
|
|
case result := <-global.GLO_RECV_CHAN:
|
|
|
for _, v := range result {
|
|
|
serve.CompressImageResource(v)
|
|
|
}
|
|
|
serve.DeclarationService(result)
|
|
|
}
|
|
|
}
|
|
|
}
|