Documentation ¶
Index ¶
- Constants
- func CalculateFileMD5(filePath string) (string, error)
- func CopyFile(src, dst string) error
- func CreateSavePath(dst string, perm os.FileMode) error
- func DIR() string
- func Exist(path string) (bool, error)
- func Exists(filename string) bool
- func FILE() string
- func GetFileContent(filePath string) ([]byte, error)
- func GetFileContentString(filePath string) (string, error)
- func GetFileHeaderMd5Name(fileHeader *multipart.FileHeader) (string, error)
- func GetFileInfo(filename string) (size int64, mode os.FileMode, err error)
- func GetFileList(path string) []string
- func LINE() int
- func MD5(file string) (string, error)
- func MergeChunk(url string, fileMergeReq *FileMergeReq) (*gohttp.Response, error)
- func ReadByLine(filename string, cb func(b []byte, end bool) error) error
- func ReadEntireFile(filePath string) ([]byte, error)
- func ReadFileAt(filePath string, offset int64, length int) ([]byte, error)
- func ReadFileChunks(filename string, chunkSize int, callback func(chunk []byte) error) error
- func ReadLines(filePath string, lineFunc func(line string) error) error
- func RemoveFile(file string) error
- func SaveFile(file *multipart.FileHeader, dst string) error
- func SaveToLocal(savePath string, chunk *FileChunk) error
- func Trace(skip int) (arr []string)
- func UploadChunk(url string, chunk *FileChunk) (*gohttp.Response, error)
- func WriteToFile(filename string, b []byte) error
- func WriteWithBuffer(w http.ResponseWriter, data []byte) error
- type Belt
- type BigFile
- type FileChunk
- type FileLock
- type FileMergeReq
- type FileReceiveResult
- func MergeFileForChunks(filePath string, fileName string, fileMd5 string, totalChunks int64, ...) (*FileReceiveResult, error)
- func ReceiveChunkHandler(assetsDir string, chunkIndex int64, chunkMd5 string, fileMd5 string, ...) (*FileReceiveResult, error)
- func ReceiveFile(assetsDir string, file *multipart.FileHeader) (*FileReceiveResult, error)
- type GoDownload
Constants ¶
const ( UPLOAD_TYPE_LOCAL = 1 UPLOAD_TYPE_OSS = 2 UPLOAD_TYPE_CHUNK = 3 )
const (
EL = "\n"
)
Variables ¶
This section is empty.
Functions ¶
func CalculateFileMD5 ¶ added in v1.2.142
计算文件md5(支持超大文件)
func GetFileContent ¶ added in v1.2.42
ReadEntireFile 读取整个文件到字节切片一样
func GetFileContentString ¶ added in v1.2.42
func GetFileHeaderMd5Name ¶
func GetFileHeaderMd5Name(fileHeader *multipart.FileHeader) (string, error)
func GetFileInfo ¶ added in v1.2.162
GetFileInfo 获取文件信息
func MergeChunk ¶ added in v1.2.37
func MergeChunk(url string, fileMergeReq *FileMergeReq) (*gohttp.Response, error)
分片全部上传完毕后,再请求文件分片合并请求(作为客户端请求时验证非法请求认证逻辑需要加,如authToken sign 等等)
func ReadByLine ¶ added in v1.2.142
func ReadEntireFile ¶ added in v1.2.162
ReadEntireFile 读取整个文件到字节切片
func ReadFileAt ¶ added in v1.2.162
ReadFileAt 从指定位置读取文件
func ReadFileChunks ¶ added in v1.2.162
ReadFileChunks 分块读取大文件,避免内存占用过大
func RemoveFile ¶
func SaveToLocal ¶ added in v1.2.37
//////////////////////////////////////////////////////////////local save 把分片存在指定目录
func UploadChunk ¶ added in v1.2.34
////////////////////////////////////////////////////////////// http server upload and merge 供参考 上传一个文件分片,(作为客户端请求时验证非法请求认证逻辑需要加,如authToken sign 等等)
func WriteWithBuffer ¶ added in v1.2.162
func WriteWithBuffer(w http.ResponseWriter, data []byte) error
Types ¶
type BigFile ¶ added in v1.2.34
type BigFile struct { ChunkSize int64 // 分片大小 M MaxWorkers int // 同时处理最大分块数量,合理用防止超大文件内存益处 File string // 文件路径 FileMd5 string // 文件Md5 ChunkCount int64 // 分片数量 FileChunkCallback func(chunk *FileChunk) error // 分片处理消息 SuccessChunkIndexes []int64 //处理成功的碎片index ErrorGroup goutils.ErrorGroup // contains filtered or unexported fields }
type FileChunk ¶ added in v1.2.34
type FileChunk struct { Data []byte //分片数据 Hash string //分片Hash Index int64 //分片顺序号 OriginalFileName string //原文件名 OriginalFileMd5 string //原文件Md5 FileName string //分片文件名称 }
fmt.Sprintf("%s.part%d", fileName, i) mapreduce big file 大文件逻辑 for 把大文件并发分片处理,为了防止OOM超大文件边分片边处理的策略
type FileLock ¶ added in v1.2.142
type FileLock struct { Filename string // contains filtered or unexported fields }
type FileMergeReq ¶ added in v1.2.37
type FileReceiveResult ¶ added in v1.2.37
type FileReceiveResult struct { OriginalFile string FileName string OriginalFileName string ChunkCount int64 }
func MergeFileForChunks ¶ added in v1.2.37
func MergeFileForChunks(filePath string, fileName string, fileMd5 string, totalChunks int64, isNotRemoveChunk bool) (*FileReceiveResult, error)
服务器合并所有文件分片,并验证md5, isNotRemoveChunk =true 合并后时不会删除分片
func ReceiveChunkHandler ¶ added in v1.2.34
func ReceiveChunkHandler(assetsDir string, chunkIndex int64, chunkMd5 string, fileMd5 string, file *multipart.FileHeader) (*FileReceiveResult, error)
服务器接受文件分片
func ReceiveFile ¶ added in v1.2.34
func ReceiveFile(assetsDir string, file *multipart.FileHeader) (*FileReceiveResult, error)
服务器接受file文件到assetsDir目录下,assetsDir 目录不存在则自动创建,返回存储位置
type GoDownload ¶ added in v1.2.162
func NewGoDownload ¶ added in v1.2.162
func NewGoDownload(ctx context.Context, filename string, w http.ResponseWriter, r *http.Request) *GoDownload
func (*GoDownload) Error ¶ added in v1.2.162
func (g *GoDownload) Error(err error)
func (*GoDownload) Output ¶ added in v1.2.162
func (g *GoDownload) Output(filePath string) error
二进制读取输出 每次读取4096字节 输出
func (*GoDownload) OutputByLine ¶ added in v1.2.162
func (g *GoDownload) OutputByLine(filePath string) error
一行一行输出
func (*GoDownload) SetFileHeaders ¶ added in v1.2.162
func (g *GoDownload) SetFileHeaders() error
func (*GoDownload) Write ¶ added in v1.2.162
func (g *GoDownload) Write(data []byte) error
func (*GoDownload) WriteString ¶ added in v1.2.163
func (g *GoDownload) WriteString(data string) error