conf

package
v0.0.0-...-dbb8d9c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2020 License: Unlicense Imports: 11 Imported by: 0

Documentation

Overview

配置参数结构定义

配置参数初始化

Index

Constants

View Source
const (
	CONST_SMALL_FILE_SIZE = int64(1024 * 1024) // 小文件定义 1M

	CONST_FILE_Md5_FILE_NAME   = "files.md5"   // 文件信息操作标识 保存文件处理
	CONST_Md5_ERROR_FILE_NAME  = "errors.md5"  // 文件信息操作标识 错误文件处理
	CONST_Md5_QUEUE_FILE_NAME  = "queue.md5"   // 文件信息操作标识 队列文件处理 , 下载队列
	CONST_REMOME_Md5_FILE_NAME = "removes.md5" // 文件信息操作标识 删除文件处理
	//
	CONST_STAT_FILE_TOTAL_SIZE_KEY = "totalSize"
	CONST_STAT_FILE_COUNT_KEY      = "fileCount"

	CONST_BIG_UPLOAD_PATH_SUFFIX = "/big/upload/"

	GO_FASTDFS_DIR = "GO_FASTDFS_DIR"
	GO_FASTDFS_IP  = "GO_FASTDFS_IP"
	Go_FastDFS     = "Go-FastDFS"
)
View Source
const (
	STORE_DIR_NAME  = "files"  // 文件存储目录
	LOG_DIR_NAME    = "log"    // 日志目录
	DATA_DIR_NAME   = "data"   // 数据目录
	CONF_DIR_NAME   = "conf"   // 配置文件目录
	STATIC_DIR_NAME = "static" // 静态资源目录
)
View Source
const CONFIG_JSON = `` /* 4422-byte string literal not displayed */

默认配置文件

View Source
const UPLOAD_UPPY_HTML = `` /* 2644-byte string literal not displayed */

Web 上传页面

Variables

View Source
var (

	// 日志
	Log slog.LoggerInterface

	// 配置文件名
	FileName string
)
View Source
var (
	VERSION     string
	BUILD_TIME  string
	GO_VERSION  string
	GIT_VERSION string
)

项目版本信息

View Source
var (
	FOLDERS = []string{DirData, DirStore, DirConf, DirStatic}
	// 项目运行目录
	DirDocker = ""
	// 数据目录
	DirData = DATA_DIR_NAME
	// 文件存储目录
	DirStore = STORE_DIR_NAME
	// 配置文件目录
	DirConf = CONF_DIR_NAME
	// 静态资源目录
	DirStatic = STATIC_DIR_NAME
	//
	DirLargeName = "haystack"
	// 日志目录
	DirLog = LOG_DIR_NAME
	//
	DirLarge                = DirStore + "/haystack"
	CONSTLevelDBFileName    = DirData + "/data.db"   // 文件信息数据库
	CONSTLevelDBFileNameLog = DirData + "/log.db"    // 文件日志数据库
	CONSTStatFileName       = DirData + "/stat.json" // 应用状态文件
	CONSTConfFileName       = DirConf + "/cfg.json"  // 应用配置文件
	CONSTSearchFileName     = DirData + "/search.txt"
	CONSTUploadCounterKey   = "__CONST_UPLOAD_COUNTER_KEY__"
)

项目运行目录定义

View Source
var (
	LogConfigStr = `` /* 435-byte string literal not displayed */

	LogAccessConfigStr = `` /* 439-byte string literal not displayed */

)

全局变量配置

View Source
var CONSTQueueSize = 10000

默认启动队列大小

Functions

func ParseConfig

func ParseConfig(filePath string)

解析配置文件

Types

type GlobalConfig

type GlobalConfig struct {
	Host                string   `json:"host"`                  // 本地主机(HTTP)地址, http://ip:port
	Addr                string   `json:"addr"`                  // 绑定监听端口号
	Group               string   `json:"group"`                 // 集群分组名, 根据分组名区分集群
	Peers               []string `json:"peers"`                 // 集群列表
	DefaultScene        string   `json:"default_scene"`         // 默认场景, 默认为 default
	EnableCrossOrigin   bool     `json:"enable_cross_origin"`   // 是否开启跨域访问, 默认开启
	EnableGoogleAuth    bool     `json:"enable_google_auth"`    // 是否开启Google认证(安全上传下载), 默认关闭
	EnableMigrate       bool     `json:"enable_migrate"`        // 是否启用迁移, 默认关闭
	SupportGroupManage  bool     `json:"support_group_manage"`  // 是否支持集群资源按组管理, 默认支持, 路由需要带分组名
	AuthUrl             string   `json:"auth_url"`              // 认证URL, 为空不认证 (一般上传认证通过 参数auth_token验证, 断点续传 HTTP头 Upload-Metadata中的 auth_token 认证)
	DownloadTokenExpire int      `json:"download_token_expire"` // 下载Token过期时间, 单位 秒
	RefreshInterval     int      `json:"refresh_interval"`      // 重试同步失败文件的时间, 单位 秒
	AutoRepair          bool     `json:"auto_repair"`           // 是否开启自动修复, 默认打开
	ReadTimeout         int      `json:"read_timeout"`
	WriteTimeout        int      `json:"write_timeout"`
	Mail                Mail     `json:"mail"`
	QueueSize           int      `json:"queue_size"`
	EnableDiskCache     bool     `json:"enable_disk_cache"`
	ConnectTimeout      bool     `json:"connect_timeout"`
	*ServerConfig       `json:"s"`
	*WebConfig          `json:"w"`
}

全局配置

func Global

func Global() *GlobalConfig

type Mail

type Mail struct {
	User     string `json:"user"`
	Password string `json:"password"`
	Host     string `json:"host"`
}

type ServerConfig

type ServerConfig struct {
	Name                 string   `json:"name"`                    // 服务名, 用于区别不同的主机
	PeerId               string   `json:"peer_id"`                 // (集群)节点标识符号, 集群中唯一
	Scenes               []string `json:"scenes"`                  // 场景列表
	ReadOnly             bool     `json:"read_only"`               // 本机是否只读, 默认可读可写
	RenameFile           bool     `json:"rename_file"`             // 是否自动重命名, 默认关闭, 使用原文件名
	SyncTimeout          int64    `json:"sync_timeout"`            // 同步单一文件超时时间, 单位 秒, 默认零程序自动计算
	DownloadDomain       string   `json:"download_domain"`         // 下载域名, 用于外网下载 (不包含 http://)
	EnableCustomPath     bool     `json:"enable_custom_path"`      // 是否支持非日期路径, 默认支持, 上传文件时指定路径(path)
	EnableDistinctFile   bool     `json:"enable_distinct_file"`    // 是否开启去重, 默认开始
	EnableTus            bool     `json:"enable_tus"`              // 是否开启断点续传, 默认开始
	EnableMergeSmallFile bool     `json:"enable_merge_small_file"` // 是否合并小文件, 默认不合并
	AlarmUrl             string   `json:"alarm_url"`               // 告警接收URL
	AlarmReceivers       []string `json:"alarm_receivers"`         // 告警接收邮件列表
	FileSumArithmetic    string   `json:"file_sum_arithmetic"`     // 文件去重算法md5可能存在冲突, 默认md5 (sha1|md5)
	Extensions           []string `json:"extensions"`              // 允许后缀名, 允许可以上传的文件后缀名, 空白则不限制
	UploadQueueSize      int      `json:"upload_queue_size"`
	UploadWorker         int      `json:"upload_worker"`
	SyncWorker           int      `json:"sync_worker"`
	RetryCount           int      `json:"retry_count"`
	EnableFsnotify       bool     `json:"enable_fsnotify"`
}

服务端配置

func Server

func Server() *ServerConfig

type WebConfig

type WebConfig struct {
	AdminIps           []string `json:"admin_ips"`            // 管理IP列表, 用于管理集的IP白名单
	EnableWebUpload    bool     `json:"enable_web_upload"`    // 是否支持web上传, 默认支持
	EnableDownloadAuth bool     `json:"enable_download_auth"` // 下载是否认证, 默认不认证 (auth_url 不为空是才生效)
	ShowDir            bool     `json:"show_dir"`             // 是否显示目录, 默认显示, 上线时请关闭
	DefaultDownload    bool     `json:"default_download"`     // 默认是否下载, 默认下载
	DownloadUseToken   bool     `json:"download_use_token"`   // 下载是否需带token, 默认不需要
	ReadHeaderTimeout  int      `json:"read_header_timeout"`
	IdleTimeout        int      `json:"idle_timeout"`
}

HTTP WEB 配置

func Web

func Web() *WebConfig

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL