gofile

package
v1.2.46 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	UPLOAD_TYPE_LOCAL = 1
	UPLOAD_TYPE_OSS   = 2
	UPLOAD_TYPE_CHUNK = 3
)
View Source
const (
	EL = "\n"
)

Variables

This section is empty.

Functions

func CopyFile

func CopyFile(src, dst string) error

复制文件

func CreateSavePath

func CreateSavePath(dst string, perm os.FileMode) error

func DIR

func DIR() string

目录名称

func Exist

func Exist(path string) (bool, error)

func FILE

func FILE() string

文件名

func GetFileContent added in v1.2.42

func GetFileContent(filePath string) ([]byte, error)

func GetFileContentString added in v1.2.42

func GetFileContentString(filePath string) (string, error)

func GetFileHeaderMd5Name

func GetFileHeaderMd5Name(fileHeader *multipart.FileHeader) (string, error)

func GetFileList

func GetFileList(path string) []string

获取当前目录下所有文件

func LINE

func LINE() int

行号

func MergeChunk added in v1.2.37

func MergeChunk(url string, fileMergeReq *FileMergeReq) (*gohttpx.Response, error)

分片全部上传完毕后,再请求文件分片合并请求(作为客户端请求时验证非法请求认证逻辑需要加,如authToken sign 等等)

func RemoveFile

func RemoveFile(file string) error

func SaveFile

func SaveFile(file *multipart.FileHeader, dst string) error

func SaveToLocal added in v1.2.37

func SaveToLocal(savePath string, chunk *FileChunk) error

//////////////////////////////////////////////////////////////local save and merge 把分片存在指定目录

func Trace

func Trace(skip int) (arr []string)

追踪信息

func UploadChunk added in v1.2.34

func UploadChunk(url string, chunk *FileChunk) (*gohttpx.Response, error)

////////////////////////////////////////////////////////////// http server upload and merge 供参考 上传一个文件分片,(作为客户端请求时验证非法请求认证逻辑需要加,如authToken sign 等等)

func WriteToFile

func WriteToFile(filename string, b []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            // 分片数量
	HandledChunkCount int64            // 已处理分片数量
	FileChunkCallback func(*FileChunk) // 分片处理消息
	// contains filtered or unexported fields
}

func (*BigFile) CheckAllDone added in v1.2.38

func (b *BigFile) CheckAllDone()

func (*BigFile) IsFinish added in v1.2.34

func (b *BigFile) IsFinish() bool

func (*BigFile) NextChunk added in v1.2.34

func (b *BigFile) NextChunk()

func (*BigFile) Release added in v1.2.34

func (b *BigFile) Release()

func (*BigFile) Start added in v1.2.34

func (b *BigFile) Start() error

func (*BigFile) Stop added in v1.2.34

func (b *BigFile) Stop()

func (*BigFile) WaitForFinish added in v1.2.34

func (b *BigFile) WaitForFinish()

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 FileMergeReq added in v1.2.37

type FileMergeReq struct {
	FileMd5     string `json:"fileMd5"`
	FileName    string `json:"fileName"`
	TotalChunks int64  `json:"totalChunks"`
}

type FileReceiveResult added in v1.2.37

type FileReceiveResult struct {
	OriginalFile string
	FileName     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 目录不存在则自动创建,返回存储位置

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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