utils

package
v0.0.0-...-e629c8d Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2022 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrorUserNameNull  = errors.New("用户名不合法")
	ErrorUserExit      = errors.New("用户名已注册过")
	ErrorUserNotExit   = errors.New("用户名不存在")
	ErrorPasswordNull  = errors.New("密码不合法,要求以字母开头,长度在6~18之间,只能包含字符、数字和下划线")
	ErrorPasswordError = errors.New("密码错误")
	ErrorNotInCache    = errors.New("没有命中缓存")
)
View Source
var (
	FeedPattern               = "feed"                     //所有视频的ID列表缓存(zset)的key
	VideoPattern              = "video:%d"                 //单条视频的信息缓存(hset)的key
	PublishPattern            = "publish:%d"               //单个用户的发布视频ID列表缓存(zset)的key
	UserPattern               = "user:%d"                  //单个用户的信息缓存(hset)的key
	CommentsOfVideoPattern    = "commentsOfVideo:%d"       //单条视频的所有发布评论ID列表缓存(zset)的key
	CommentPattern            = "comment:%d"               //单条评论的信息缓存(hset)的key
	FavoritePattern           = "favorite:%d"              //单个用户的所有点赞视频ID列表缓存(zset)的key
	FollowPattern             = "follow:%d"                //单个用户的所有关注用户ID列表缓存(zset)的key
	FollowerPattern           = "follower:%d"              //单个用户的所有粉丝用户ID列表缓存(zset)的key
	PublishEmptyPattern       = "publishVideoEmpty:%d"     //用户发布视频列表为空的空值处理:(set) key
	FavoriteEmptyPattern      = "favoriteVideoEmpty:%d"    //用户点赞视频列表为空的空值处理:(set) key
	FollowEmptyPattern        = "followUserEmpty:%d"       //用户关注列表为空的空值处理:(set) key
	FollowerEmptyPatten       = "userFollowerEmpty:%d"     //用户粉丝列表为空的空值处理:(set) key
	CommentEmptyPattern       = "videoCommentEmpty:%d"     //视频评论列表为空的空值处理:(set) key
	UsernameRegisteredPattern = "usernameRegistered:%s"    //用户名已被注册的缓存处理:(set) key
	UserInfoEmptyPattern      = "userInfoEmptyPattern:%d"  //用户信息查看缓存穿透的空值处理(set)key
	UserLoginEmptyPattern     = "userLoginEmptyPattern:%s" //登录用户名不存在的空值处理(set)key
)
View Source
var (
	VideoExpire              = 10 * time.Minute
	PublishExpire            = 10 * time.Minute
	UserExpire               = 10 * time.Minute
	CommentsOfVideoExpire    = 10 * time.Minute
	CommentExpire            = 10 * time.Minute
	FavoriteExpire           = 10 * time.Minute
	FollowExpire             = 10 * time.Minute
	FollowerExpire           = 10 * time.Minute
	PublishEmptyExpire       = 1 * time.Minute
	FavoriteEmptyExpire      = 1 * time.Minute
	FollowEmptyExpire        = 1 * time.Minute
	FollowerEmptyExpire      = 1 * time.Minute
	CommentEmptyExpire       = 1 * time.Minute
	UsernameRegisteredExpire = 10 * time.Second
	UserInfoEmptyExpire      = 10 * time.Second
	UserLoginEmptyExpire     = 10 * time.Second
)

Functions

func BcryptCheck

func BcryptCheck(password, hash string) bool

BcryptCheck 对比明文密码和数据库存储的哈希值

func BcryptHash

func BcryptHash(password string) string

BcryptHash 使用 bcrypt 对密码进行加密

func CreateDir

func CreateDir(dirs ...string) (err error)

CreateDir 批量创建文件夹

func CreateToken

func CreateToken(userID uint64, userName string) (string, error)

CreateToken 创建一个token

func GetCoverImage

func GetCoverImage(videoPath, saveCoverPath string, frameNum int) (CoverImageName string, err error)

GetCoverImage 生成视频缩略图作为封面并保存 videoPath:视频的路径 saveCoverPath:生成的缩略图保存的路径 frameNum:缩略图所属的帧数,指定要截取视频的哪一帧作为封面,通过调整帧数截取稍微靠后的几秒作为封面 CoverImageName 获取缩略图的文件名称

func GetRandExpireTime

func GetRandExpireTime() time.Duration

GetRandExpireTime 针对大量数据同时失效带来的缓存雪崩问题,一般的解决方案是要避免大量的数据设置相同的过期时间,如果业务上的确有要求数据要同时失效,那么可以在过期时间上加一个较小的随机数,这样不同的数据过期时间不同,但差别也不大,避免大量数据同时过期,也基本能满足业务的需求。

func MultipartUpload

func MultipartUpload(objectName, localFileName string) (string, error)

MultipartUpload 分片上传

func NewBucket

func NewBucket() (*oss.Bucket, error)

func PathExists

func PathExists(path string) (bool, error)

PathExists 文件目录是否存在

func UploadFromFile

func UploadFromFile(objectName, localFileName string) (string, error)

UploadFromFile 上传文件

Types

type MyCustomClaims

type MyCustomClaims struct {
	UserID     uint64
	UserName   string
	BufferTime int64
	jwt.RegisteredClaims
}

func ParseToken

func ParseToken(tokenString string) (*MyCustomClaims, error)

ParseToken 解析 token

Jump to

Keyboard shortcuts

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