lytdev/go-mykit
Fork: 2 Star: 8 (更新于 2024-12-17 10:41:46)
license: Apache-2.0
Language: Go .
打造类似hutool的go工具箱
最后发布版本: v1.3.2 ( 2023-07-07 08:49:32)
说明
打造类似
hutool
的 go 工具箱
安装
go get -u github.com/lytdev/go-mykit
工具概览
更多方法参考官方文档
uuid
-
guid.FastUuid()
使用Uuid4生成不带-的uuid -
snowflake, _ := guid.NewSnowflake(0)
创建雪花算法生成器
datetime
日期时间推荐使用carbon
-
gdatetime.FormatDateTimeToStr
提取日期为统一格式 yyyy-mm-dd hh:mm:ss -
gdatetime.FormatDurationToSecond
将持续时间转为秒数 1:01:03 -
gdatetime.TimeToStrAsFormat
获取时间字符串 -
gdatetime.TimeToTimeStampMill
时间转毫秒级别时间戳 -
gdatetime.TimestampSecToTime
秒级别时间戳转时间
文件操作
-
gfile.ReadWithLine
按行读取文件的文本 -
gfile.CopyFile
复制文件 -
gfile.FileDir
获取文件所在的路径 -
gfile.MainName
获取文件的名称,不带后缀
加密解密
加密解密推荐使用dongle
支持excel的读取和写入
-
gexcel.ReadFileToList(filePath, 0, ptr)(resultData []T, err error)
读取本地excel文件至切片 -
gexcel.ReadFileStreamToList
读取excel文件流至切片 -
gexcel.WriteToFile(sheetName, dataList)(f *excelize.File,err error)
写入片切数据至excelize.File对象
对象转换
-
gmap2struct.Decode
map转结构
文件下载
大文件分片下载
import (
"github.com/lytdev/go-mykit/gdownload"
"github.com/lytdev/go-mykit/helpers/progress"
)
type Listener struct {
}
//实现监听接口
func (l Listener) ProgressChanged(event *hprogress.ProgressEvent) {
fmt.Println(event)
}
download := gdownload.Instance{
//5个线程进行下载
Workers: 5,
//每个分片5M
PartSize: 1024 * 1024 * 5,
//分片的缓存500KB
BufSize: 1024 * 500,
}
httpReader := gdownload.HttpReader{Url: "https://playback-tc.videocc.net/polyvlive/76490dba387702307790940685/f0.mp4"}
err := download.Download(context.Background(), "../testdata/example1.mp4", &httpReader, &Listener{})
if err != nil {
fmt.Println(err)
return
}
小文件下载
wc := new(WriteCounter)
wc.SetWatch(func(current, total int, percentage float64) {
fmt.Printf("\r当前已下载大小 %f MB, 下载进度:%.2f%%, 总大小 %f MB",
float64(current)/1024/1024,
percentage,
float64(total)/1024/1024,
)
})
downloader := NewWithSingle()
err := downloader.SingleDownload(wc, downloadUrl, "../testdata/example2.mp4")
if err != nil {
fmt.Println(err)
return
}
最近版本更新:(数据更新于 2024-09-03 11:51:25)
2023-07-07 08:49:32 v1.3.2
2023-07-06 19:12:49 v1.3.1
2023-07-06 18:50:17 v1.3.0
2023-01-08 20:30:28 v1.2.1
2022-12-07 17:52:27 v1.2.0
2022-12-02 15:45:44 v1.1.5
2022-12-02 11:53:24 v1.1.4
2022-12-01 16:33:34 v1.1.3
2022-11-30 15:32:58 v1.1.2
2022-11-29 14:38:22 v1.1.1
主题(topics):
excel, go, go-helpers, go-kits, go-lib, go-utils
lytdev/go-mykit同语言 Go最近更新仓库
2024-12-22 07:52:58 navidrome/navidrome
2024-12-21 20:15:12 SagerNet/sing-box
2024-12-21 03:25:54 SpecterOps/BloodHound
2024-12-19 23:11:24 shadow1ng/fscan
2024-12-19 21:50:56 minio/minio
2024-12-19 10:04:39 istio/istio