BaseFileSys2

package
v5.1.29 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	//OpenSub 是否启动订阅
	OpenSub = false
)

Functions

func DeleteClaim

func DeleteClaim(claimId int64, orgID int64, userID int64) (err error)

func DeleteCore

func DeleteCore(id int64, orgID int64, userID int64) (err error)

func GetFileTypeByClaimID

func GetFileTypeByClaimID(claimID int64) (fileType string)

GetFileTypeByClaimID 获取文件格式

func GetPublicURLByClaimID

func GetPublicURLByClaimID(fileID int64) (url string)

GetPublicURLByClaimID 获取文件URL地址

func GetPublicURLFirstByList

func GetPublicURLFirstByList(fileIDs []int64) string

GetPublicURLFirstByList 从一组图片中抽取第一张图反馈

func GetPublicURLMapsByClaimIDsTo

func GetPublicURLMapsByClaimIDsTo(fileIDs []int64) map[int64]string

GetPublicURLMapsByClaimIDsTo 获取一组文件URL Map结构体

func GetPublicURLsByClaimIDs

func GetPublicURLsByClaimIDs(fileIDs []int64) (fileURLs []string)

GetPublicURLsByClaimIDs 批量获取一组文件

func Init

func Init()

func UploadFile

func UploadFile(c *gin.Context, args *ArgsUploadFile) (newClaimID int64, errCode string, err error)

UploadFile 上传文件 上传到本地,然后根据存储规格区别处理

Types

type ArgsGetClaimList

type ArgsGetClaimList struct {
	//分页参数
	Pages CoreSQL2.ArgsPages `json:"pages"`
	//组织ID
	OrgID int64 `json:"orgID" check:"id" empty:"true"`
	//用户ID
	UserID int64 `json:"userID" check:"id" empty:"true"`
	//文件结构体
	FileID int64 `json:"fileID" check:"id" empty:"true"`
	//搜索
	Search string `json:"search" check:"search" empty:"true"`
}

type ArgsGetCoreList

type ArgsGetCoreList struct {
	//分页
	Pages CoreSQL2.ArgsPages `json:"pages"`
	//组织ID
	OrgID int64 `json:"orgID" check:"id" empty:"true"`
	//用户ID
	UserID int64 `json:"userID" check:"id" empty:"true"`
	//存储方式
	// local 本地化单一服务器存储; qiniu 七牛云存储
	SaveSystem string `db:"save_system" json:"saveSystem" check:"mark" empty:"true"`
	//存储块
	SaveMark string `db:"save_mark" json:"saveMark" check:"mark" empty:"true"`
}

ArgsGetCoreList 获取文件列表参数

type ArgsUploadFile

type ArgsUploadFile struct {
	//文件路径
	FileSrc string `json:"fileSrc"`
	//目标路径
	TargetSrc string `json:"targetSrc"`
	//文件最大尺寸
	MaxSize int64 `json:"maxSize"`
	//限制格式
	FilterType []string `json:"filterType"`
	//创建用户
	UserID int64 `json:"userID" check:"id" empty:"true"`
	//创建组织
	OrgID int64 `json:"orgID" check:"id" empty:"true"`
	//IP地址
	IP string `json:"ip"`
	//过期时间
	ExpireAt time.Time `json:"expireAt" check:"defaultTime" empty:"true"`
	//是否为公开的文件
	IsPublic bool `json:"isPublic" check:"bool" empty:"true"`
	//描述
	Des string `json:"des" check:"des" min:"1" max:"600" empty:"true"`
}

ArgsUploadFile 上传文件参数

type DataFileClaimVisit

type DataFileClaimVisit struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//创建时间
	CreateAt time.Time `db:"create_at" json:"createAt"`
	//认领文件ID
	ClaimID int64 `db:"claim_id" json:"claimID"`
	//实体文件ID
	FileID int64 `db:"file_id" json:"fileID"`
	//查看用户ID
	UserID int64 `db:"user_id" json:"userID"`
	//创建IP
	CreateIP string `db:"create_ip" json:"createIP"`
}

DataFileClaimVisit 认领文件访问数据参数 该表不是永久性数据存储,将用于数据分析调用和使用,一段时间后将自动删除相关数据,以确保数据快速写入

type DataUploadFileType

type DataUploadFileType struct {
	//文件尺寸
	Size int64
	//文件名称,含类别
	Name string
	//文件名称,不含类别
	OnlyName string
	//新的文件名称
	NewName string
	//文件类别
	Type string
	//创建时间
	CreateTime int64
	//存储路径
	Src string
	//SHA256摘要
	SHA256 string
}

DataUploadFileType 上传文件结构体

type FieldsFile

type FieldsFile struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//创建时间
	CreateAt time.Time `db:"create_at" json:"createAt"`
	//更新时间
	UpdateAt time.Time `db:"update_at" json:"updateAt"`
	//验证Hash
	UpdateHash string `db:"update_hash" json:"updateHash"`
	//创建IP
	CreateIP string `db:"create_ip" json:"createIP"`
	//文件原始创建人
	//创建组织
	// 可选,指定后该文件归属于组织,用户ID将只是指引,没有操作权限
	OrgID int64 `db:"org_id" json:"orgID"`
	//创建用户
	// 必须指定创建的用户,如果组织失效,则文件将自动归属于用户
	UserID int64 `db:"user_id" json:"userID"`
	//文件尺寸
	FileSize int64 `db:"file_size" json:"fileSize"`
	//文件类型
	FileType string `db:"file_type" json:"fileType"`
	//文件hash
	// 默认采用sha256作为标准
	FileHash string `db:"file_hash" json:"fileHash"`
	//文件路径
	FileSrc string `db:"file_src" json:"fileSrc"`
	//存储方式
	// local 本地化单一服务器存储; qiniu 七牛云存储
	SaveSystem string `db:"save_system" json:"saveSystem"`
	//存储块
	SaveMark string `db:"save_mark" json:"saveMark"`
	//第三方服务是否确认
	SaveSuccess bool `db:"save_success" json:"saveSuccess"`
	//其他扩展信息
	Infos CoreSQLConfig.FieldsConfigsType `db:"infos" json:"infos"`
}

FieldsFile 文件主要结构体

func GetCore

func GetCore(id int64) (data FieldsFile)

GetCore 获取文件数据

func GetCoreList

func GetCoreList(args *ArgsGetCoreList) (dataList []FieldsFile, dataCount int64, err error)

GetCoreList 获取文件列表

type FieldsFileClaim

type FieldsFileClaim struct {
	//ID
	ID int64 `db:"id" json:"id"`
	//创建时间
	CreateAt time.Time `db:"create_at" json:"createAt"`
	//更新时间
	UpdateAt time.Time `db:"update_at" json:"updateAt"`
	//验证Hash
	UpdateHash string `db:"update_hash" json:"updateHash"`
	//创建组织
	// 可选,指定后该文件归属于组织,用户ID将只是指引,没有操作权限
	OrgID int64 `db:"org_id" json:"orgID"`
	//创建用户
	// 必须指定创建的用户,如果组织失效,则文件将自动归属于用户
	UserID int64 `db:"user_id" json:"userID"`
	//是否公开?
	// 否则必须指定认证来源才能查看
	IsPublic bool `db:"is_public" json:"isPublic"`
	//文件结构体
	FileID int64 `db:"file_id" json:"fileID"`
	//文件自动过期时间
	// 过期将自动销毁该文件
	// null为永远不过期
	ExpireAt time.Time `db:"expire_at" json:"expireAt"`
	//最后访问时间
	VisitLastAt time.Time `db:"visit_last_at" json:"visitLastAt"`
	//访问次数
	VisitCount int `db:"visit_count" json:"visitCount"`
	//描述或备注
	Des string `db:"des" json:"des"`
	//其他扩展信息
	Infos CoreSQLConfig.FieldsConfigsType `db:"infos" json:"infos"`
}

FieldsFileClaim 认领结构体 文件的hash可重复被认领,节约存储空间 除了匹配hash外,还会匹配文件的type和size信息,以减少碰撞概率 采用sha256作为唯一标识码标准

func GetClaim

func GetClaim(id int64) (data FieldsFileClaim)

func GetClaimList

func GetClaimList(args *ArgsGetClaimList) (dataList []FieldsFileClaim, dataCount int64, err error)

Jump to

Keyboard shortcuts

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