Documentation
¶
Overview ¶
Package tempfile 提供临时文件的管理功能,包括文件的创建、读写、缓存和清理
Index ¶
- func CheckFileExistsAndInfo(key string) (fs.FileInfo, bool, error)
- func CleanupTempFiles(dirPath ...string) error
- func Delete(key string) error
- func Exists(key string) (bool, error)
- func GetFile(key string) (*os.File, error)
- func GetUploadsDir() string
- func OnlyRead(key string) ([]byte, error)
- func Read(key string) ([]byte, error)
- func ReadEncryptedSegment(readKey string) ([]byte, error)
- func Size(key string) (int64, error)
- func Write(key string, value []byte) error
- func WriteBatch(segments map[string][]byte) error
- func WriteBatchOptimized(segments map[string][]byte) error
- func WriteBatchStream(segments map[string]io.Reader) error
- func WriteEncryptedSegment(segmentID string, reader io.Reader, isRsCodes bool, taskID ...string) (string, error)
- func WriteShards(fileID string, shards []io.Writer) error
- func WriteStream(key string, reader io.Reader) error
- func WriteStreamOptimized(key string, reader io.Reader) error
- type BufferPool
- type Config
- type FilePool
- type TempFile
- type TempFileError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckFileExistsAndInfo ¶
CheckFileExistsAndInfo 检查与给定键关联的临时文件是否存在并返回其文件信息 参数:
- key: string 用于检索临时文件的唯一键
返回值:
- fs.FileInfo: 文件信息(如果存在)
- bool: 文件是否存在
- error: 如果检查过程中发生错误,返回相应的错误信息
func CleanupTempFiles ¶ added in v2.0.28
CleanupTempFiles 清理所有临时文件 参数:
- dirPath: string (可选) 指定要清理的临时目录,如果为空则清理系统临时目录中的defs_tempfile_*文件
返回值:
- error: 如果清理过程中发生错误,返回相应的错误信息
func Exists ¶
Exists 检查与给定键关联的临时文件是否存在 参数:
- key: string 用于检索临时文件的唯一键
返回值:
- bool: 文件是否存在
- error: 如果检查过程中发生错误,返回相应的错误信息
func GetFile ¶
GetFile 获取与键关联的文件句柄 参数:
- key: string 用于检索临时文件的唯一键
返回值:
- *os.File: 文件句柄
- error: 如果获取过程中发生错误,返回相应的错误信息
func GetUploadsDir ¶ added in v2.0.32
func GetUploadsDir() string
GetUploadsDir 返回上传文件的临时目录 返回值:
- string: 上传文件的临时目录路径
func OnlyRead ¶
OnlyRead 根据键读取临时文件的内容,并在读取成功后删除文件 参数:
- key: string 用于检索临时文件的唯一键
返回值:
- []byte: 读取的文件内容
- error: 如果读取过程中发生错误,返回相应的错误信息
func Read ¶
Read 根据键读取临时文件的内容,并在读取成功后删除文件 参数:
- key: string 用于检索临时文件的唯一键
返回值:
- []byte: 读取的文件内容
- error: 如果读取过程中发生错误,返回相应的错误信息
func ReadEncryptedSegment ¶ added in v2.0.28
ReadEncryptedSegment 读取加密的分片数据 参数:
- readKey: WriteEncryptedSegment返回的读取标识
返回值:
- []byte: 加密的数据
- error: 读取失败时返回错误
func Size ¶
Size 返回与给定键关联的临时文件的大小 参数:
- key: string 用于检索临时文件的唯一键
返回值:
- int64: 文件大小(字节)
- error: 如果获取文件大小过程中发生错误,返回相应的错误信息
func Write ¶
Write 将值写入临时文件,并将文件名与键关联 参数:
- key: string 用于关联临时文件的唯一键
- value: []byte 要写入临时文件的数据
返回值:
- error: 如果写入过程中发生错误,返回相应的错误信息
func WriteBatch ¶
WriteBatch 批量写入多个临时文件 参数:
- segments: map[string][]byte 键为分片ID,值为分片数据的映射
返回值:
- error: 如果写入过程中发生错误,返回相应的错误信息
func WriteBatchOptimized ¶ added in v2.0.28
WriteBatchOptimized 优化批量写入 参数:
- segments: map[string][]byte 键为分片ID,值为分片数据的映射
返回值:
- error: 如果写入过程中发生错误,返回相应的错误信息
func WriteBatchStream ¶
WriteBatchStream 批量写入多个临时文件,使用流式处理 参数:
- segments: map[string]io.Reader 键为分片ID,值为分片数据的读取器
返回值:
- error: 如果写入过程中发生错误,返回相应的错误信息
func WriteEncryptedSegment ¶ added in v2.0.28
func WriteEncryptedSegment(segmentID string, reader io.Reader, isRsCodes bool, taskID ...string) (string, error)
WriteEncryptedSegment 写入加密的分片数据 参数:
- segmentID: string 分片ID
- reader: io.Reader 要写入的数据读取器
- isRsCodes: bool 是否是RsCodes
- taskID: string (可选) 任务ID,用于隔离不同上传任务的临时文件
返回值:
- string: 读取标识
func WriteShards ¶
WriteShards 将多个分片写入临时文件 参数:
- fileID: string 文件ID
- shards: []io.Writer 分片写入器切片
返回值:
- error: 如果写入过程中发生错误,返回相应的错误信息
func WriteStream ¶
WriteStream 将 io.Reader 的内容写入临时文件,并将文件名与键关联 参数:
- key: string 用于关联临时文件的唯一键
- reader: io.Reader 要写入临时文件的数据读取器
返回值:
- error: 如果写入过程中发生错误,返回相应的错误信息
Types ¶
type BufferPool ¶ added in v2.0.28
type BufferPool struct {
// contains filtered or unexported fields
}
BufferPool 提供多级缓冲区池,通过复用不同大小的缓冲区来减少内存分配
func NewBufferPool ¶ added in v2.0.28
func NewBufferPool() *BufferPool
NewBufferPool 创建并初始化一个新的缓冲区池 返回值:
- *BufferPool: 初始化完成的缓冲区池
func (*BufferPool) Get ¶ added in v2.0.28
func (p *BufferPool) Get(size int64) *bytes.Buffer
Get 根据数据大小获取合适的缓冲区 参数:
- size: 需要的缓冲区大小(字节)
返回值:
- *bytes.Buffer: 获取到的缓冲区,容量>=size
func (*BufferPool) Put ¶ added in v2.0.28
func (p *BufferPool) Put(buf *bytes.Buffer)
Put 将使用完的缓冲区归还到池中 参数:
- buf: 要归还的缓冲区
type Config ¶ added in v2.0.28
type Config struct { MaxFileSize int64 // 单个文件的最大大小(字节) MaxFiles int // 允许的最大文件数量 MinFileAge time.Duration // 文件的最小保留时间(默认1小时) MaxFileAge time.Duration // 文件的最大保留时间(默认24小时) CleanupInterval time.Duration // 清理检查的时间间隔 TempDir string // 临时文件存储目录 }
Config 定义临时文件管理器的配置参数
type FilePool ¶ added in v2.0.28
type FilePool struct {
// contains filtered or unexported fields
}
FilePool 管理临时文件池
type TempFile ¶ added in v2.0.28
type TempFile struct {
// contains filtered or unexported fields
}
TempFile 表示一个临时文件实例及其状态
type TempFileError ¶ added in v2.0.28
TempFileError 定义临时文件操作的错误信息
func (*TempFileError) Error ¶ added in v2.0.28
func (e *TempFileError) Error() string
Error 实现error接口,提供格式化的错误信息