Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
go_library(
name = "go_default_library",
srcs = [
"bucket.go",
"dir.go",
"param.go",
"record.go",
],
importpath = "go-common/app/admin/main/upload/model",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = ["//library/time:go_default_library"],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,55 @@
package model
import (
xtime "go-common/library/time"
)
const (
// PrivateReadBit 私有读位
PrivateReadBit = 0
// PrivateWriteBit 私有写位
PrivateWriteBit = 1
//status
// Public = 0
Public = int(0)
// PrivateRead = 1
PrivateRead = int(1 << PrivateReadBit)
// PrivateWrite = 2
PrivateWrite = int(1 << PrivateWriteBit)
// PrivateReadWrite = 3
PrivateReadWrite = int(PrivateRead | PrivateWrite)
)
// Bucket bucekt table orm
type Bucket struct {
ID int `json:"id" gorm:"column:id"`
BucketName string `json:"bucket_name" gorm:"column:bucket_name"`
Property int `json:"property" gorm:"column:property"`
KeyID string `json:"key_id" gorm:"column:key_id"`
KeySecret string `json:"key_secret" gorm:"column:key_secret"`
PurgeCDN bool `json:"purge_cdn" gorm:"column:purge_cdn"`
CacheControl int `json:"cache_control" gorm:"column:cache_control"`
Domain string `json:"domain" gorm:"column:domain"`
CTime xtime.Time `json:"ctime" gorm:"column:ctime"`
MTime xtime.Time `json:"mtime" gorm:"column:mtime"`
DirLimit []*DirLimit `json:"dir_limit" gorm:"-"`
}
// TableName bucket
func (b Bucket) TableName() string {
return "bucket"
}
// Page common page response
type Page struct {
PS int `json:"ps"`
PN int `json:"pn"`
Total int `json:"total"`
}
// BucketListPage bucket/list result
type BucketListPage struct {
Items []*Bucket `json:"items"`
Page *Page `json:"page"`
}

View File

@@ -0,0 +1,44 @@
package model
import xtime "go-common/library/time"
// DirConfig dir config
type DirConfig struct {
Pic DirPicConfig `json:"dir_pic_config"`
Rate DirRateConfig `json:"dir_rate_config"`
}
// DirPicConfig pic config
type DirPicConfig struct {
FileSize uint `json:"file_size"` //文件大小上限 单位 Byte
MaxPixelWidthSize uint `json:"max_pixel_width_size"` //像素宽上限
MinPixelWidthSize uint `json:"min_pixel_width_size"` //像素高下限
MaxPixelHeightSize uint `json:"max_pixel_height_size"` //像素高上限
MinPixelHeightSize uint `json:"min_pixel_height_size"` //像素宽下限
MaxAspectRatio float64 `json:"max_aspect_ratio"` //最大宽高比
MinAspectRatio float64 `json:"min_aspect_ratio"` //最小宽高比
AllowType string `json:"allow_type"` //允许的MIME类型
}
// DirRateConfig rate config
type DirRateConfig struct {
// SecondQPS 接受 CountQPS 个请求
SecondQPS uint `json:"second_qps"`
CountQPS uint `json:"count_qps"`
}
// DirLimit table dir_limit ORM
type DirLimit struct {
ID int `json:"id" gorm:"column:id"`
BucketName string `json:"bucket_name" gorm:"column:bucket_name"`
Dir string `json:"dir" gorm:"column:dir"`
ConfigPic string `json:"config_pic" gorm:"column:config_pic"`
ConfigRate string `json:"config_rate" gorm:"column:config_rate"`
CTime xtime.Time `json:"ctime" gorm:"column:ctime"`
MTime xtime.Time `json:"mtime" gorm:"column:mtime"`
}
// TableName dir_limit
func (dl DirLimit) TableName() string {
return "dir_limit"
}

View File

@@ -0,0 +1,129 @@
package model
const (
_defaultWmPaddingX = 10
_defaultWmPaddingY = 10
_defaultWmScale = float64(1) / 24
// delete status .please read document.
// http://info.bilibili.co/pages/viewpage.action?pageId=8718262#bfs%E7%AE%A1%E7%90%86%E5%90%8E%E5%8F%B0%E7%9B%B8%E5%85%B3%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3-db%E8%AE%BE%E8%AE%A1
// PassStatus express pass status.
PassStatus = 2
// DeleteStatus .
DeleteStatus = 3
)
// AddParam describe add api param
type AddParam struct {
Bucket string `json:"bucket" form:"bucket" validate:"required"`
FileName string `json:"filename" form:"filename" validate:"required"`
URL string `json:"url" form:"url"`
Sex int `json:"sex" form:"sex"`
Politics int `json:"politics" form:"politics"`
}
// ListParam describe list api param
type ListParam struct {
Bucket string `json:"bucket" form:"bucket" validate:"required"`
State int `json:"state" form:"state" validate:"required,min=0"`
PN int `json:"pn" form:"pn" validate:"min=1"`
PS int `json:"ps" form:"ps" validate:"min=1"`
}
// MultiListParam describe list api param
type MultiListParam struct {
Bucket []string `json:"bucket" form:"bucket"`
State int `json:"state" form:"state" validate:"min=0"`
PN int `json:"pn" form:"pn" validate:"min=1" default:"1"`
PS int `json:"ps" form:"ps" validate:"min=1" default:"50"`
}
// DeleteParam describe list api param
type DeleteParam struct {
Rid int `json:"rid" form:"rid" validate:"required"`
Bucket string `json:"bucket"`
FileName string `json:"filename"`
AdminID int64 `json:"admin_id"`
}
// DeleteV2Param describe list api param
type DeleteV2Param struct {
Rid int `json:"rid" form:"rid" validate:"required"`
Status int `json:"status" form:"status" validate:"required"`
Bucket string `json:"bucket"`
FileName string `json:"filename"`
AdminID int64 `json:"admin_id"`
}
// DeleteRawParam describe list api param
type DeleteRawParam struct {
Bucket string `json:"bucket" form:"bucket" validate:"required"`
FileName string `json:"filename" form:"filename" validate:"required"`
}
// AddBucketParam .
type AddBucketParam struct {
Name string `form:"name" json:"name" validate:"required"`
Property int `form:"property" json:"property" validate:"min=0,max=3"`
KeyID string `form:"key_id" json:"key_id" validate:"required"`
KeySecret string `form:"key_secret" json:"key_secret" validate:"required"`
PurgeCDN bool `form:"purge_cdn" json:"purge_cdn"`
CacheControl int `form:"cache_control" json:"cache_control"`
Domain string `form:"domain" json:"domain"`
}
// AddDirParam .
type AddDirParam struct {
BucketName string `form:"bucket_name" validate:"required"`
DirName string `form:"dir_name" validate:"required"`
Pic string `form:"pic"`
Rate string `form:"rate"`
}
// ListBucketParam .
type ListBucketParam struct {
PN int `form:"pn" validate:"min=1"`
PS int `form:"ps" validate:"min=1"`
}
// UploadParam .
type UploadParam struct {
Bucket string `form:"bucket" json:"bucket" validate:"required" `
ContentType string `form:"content_type" json:"content_type"`
Auth string `form:"auth" json:"-"`
Dir string `form:"dir" json:"dir"`
FileName string `form:"file_name" json:"file_name"`
WmKey string `form:"wm_key" json:"wm_key"`
WmText string `form:"wm_text" json:"wm_text"`
WmPaddingX int `form:"wm_padding_x" json:"wm_padding_x"`
WmPaddingY int `form:"wm_padding_y" json:"wm_padding_y"`
WmScale float64 `form:"wm_scale" json:"wm_scale"`
}
// WMInit init UploadParam
func (up *UploadParam) WMInit() {
if up.WmKey != "" || up.WmText != "" {
if up.WmPaddingX < 0 {
up.WmPaddingX = _defaultWmPaddingX
}
if up.WmPaddingY < 0 {
up.WmPaddingY = _defaultWmPaddingY
}
if up.WmScale <= 0 {
up.WmScale = _defaultWmScale
}
}
}
// UploadResult .
type UploadResult struct {
Location string `json:"location"`
Etag string `json:"etag"`
}
// MultiListResult .
type MultiListResult struct {
Bucket string `json:"bucket"`
Imgs []*Record `json:"imgs"`
}

View File

@@ -0,0 +1,32 @@
package model
import xtime "go-common/library/time"
// Record .
type Record struct {
ID int `json:"id" gorm:"column:id"`
Bucket string `json:"bucket" gorm:"column:bucket"`
FileName string `json:"filename" gorm:"column:filename"`
AdminID int `json:"admin_id" gorm:"column:adminid"`
State int `json:"state" gorm:"column:state"`
CTime xtime.Time `json:"ctime" gorm:"column:ctime"`
MTime xtime.Time `json:"mtime" gorm:"column:mtime"`
URL string `json:"url" gorm:"url"`
Sex int `json:"sex" gorm:"sex"`
Politics int `json:"politics" gorm:"politics"`
}
// TableName .
func (Record) TableName() string {
return "upload_yellowing"
}
// TinyRecord .
type TinyRecord struct {
Rid int `gorm:"column:id"`
}
// TableName .
func (TinyRecord) TableName() string {
return "upload_yellowing"
}