84 lines
2.3 KiB
Go
84 lines
2.3 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"sentinel/app/log"
|
|
"sentinel/app/model"
|
|
"sentinel/app/net"
|
|
"sentinel/app/storage"
|
|
)
|
|
|
|
func main() {
|
|
banner := `
|
|
==========================================================================
|
|
_______ _______ _ __________________ _ _______ _
|
|
( ____ \( ____ \( ( /|\__ __/\__ __/( ( /|( ____ \( \
|
|
| (_____ | (__ | \ | | | | | | | \ | || (__ | |
|
|
(_____ )| __) | (\ \) | | | | | | (\ \) || __) | |
|
|
/\____) || (____/\| ) \ | | | ___) (___| ) \ || (____/\| (____/\
|
|
\_______)(_______/|/ )_) )_( \_______/|/ )_)(_______/(_______/
|
|
==========================================================================
|
|
`
|
|
deviceID := "6823316af0e540bea818ec1be25cc14a"
|
|
log.Init() // 初始化日志目录
|
|
log.Info("Device id: " + deviceID) // 第一次启动记录
|
|
log.Info(banner)
|
|
// 0. 从海康SDK获取图片以及信息
|
|
record := loadData(deviceID)
|
|
// 1. 上传图片到OSS
|
|
uploadFile(record.LicensePlateImage, record.VehicleImage)
|
|
// 2. 调用分析请求
|
|
analytics(record)
|
|
<-make(chan struct{})
|
|
|
|
//fatal error: all goroutines are asleep - deadlock!
|
|
|
|
}
|
|
|
|
func loadData(deviceID string) model.Record {
|
|
return model.Record{
|
|
DeviceId: deviceID, //从环境变量取
|
|
LicensePlate: "晋A-888888",
|
|
LicensePlateImage: "licensePlateImage_test1.jpg",
|
|
VehicleType: "大型货车",
|
|
VehicleImage: "vehicleImage_test1.jpg",
|
|
}
|
|
}
|
|
|
|
func uploadFile(licensePlateImage string, vehicleImage string) {
|
|
if err := storage.Init(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
// todo 需要压缩图片至1~3MB
|
|
size, err := storage.UploadFile(
|
|
context.Background(),
|
|
"sentinel",
|
|
"license_plate/"+licensePlateImage,
|
|
"tmp/"+licensePlateImage,
|
|
"image/jpeg",
|
|
)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
log.Println(fmt.Sprintf("车牌照已上传完毕, 大小: = %d KB", size/1024))
|
|
size, err = storage.UploadFile(
|
|
context.Background(),
|
|
"sentinel",
|
|
"vehicle_image/"+vehicleImage,
|
|
"tmp/"+vehicleImage,
|
|
"image/jpeg",
|
|
)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
log.Println(fmt.Sprintf("车身照已上传完毕, 大小: = %d KB", size/1024))
|
|
}
|
|
|
|
func analytics(record model.Record) {
|
|
err := api.Analytics(record)
|
|
if err != nil {
|
|
return
|
|
}
|
|
}
|