package
2.0.1+incompatible
Repository: https://github.com/bpfs/defs.git
Documentation: pkg.go.dev

# Packages

No description provided by the author

# Functions

BoolToByte 将bool转换为byte 参数: - b: bool 需要转换的布尔值 返回值: - byte: 转换后的字节值,true为1,false为0.
CalculateFileHash 计算文件的SHA-256 hash 参数: - file afero.File: 要计算哈希的文件 返回值: - []byte: 计算得到的SHA-256哈希值 - error: 处理过程中发生的任何错误.
CalculateHash 计算[]byte的SHA-256 hash值 参数: - data []byte: 要计算哈希的数据 返回值: - []byte: 计算得到的SHA-256哈希值.
CheckAndMkdir 检查文件夹是否存在,不存在则新建 参数: - dirPath string: 要检查或创建的目录路径 返回值: - error: 处理过程中发生的任何错误.
CompareHashes 比较两个哈希值是否相等 参数: - hash1 []byte: 第一个哈希值 - hash2 []byte: 第二个哈希值 返回值: - bool: 如果两个哈希值相等,返回 true;否则返回 false.
ConvertSliceTableToSortedSlice 将 map[int64]*pb.HashTable 转换为有序的 []*pb.HashTable.
CopyFile 将文件从源路径复制到目标路径 参数: - opt: *fscfg.Options 类型,包含文件系统配置选项 - afe: afero.Afero 类型,文件系统接口 - srcSubDir: string 类型,源文件子目录路径 - srcFileName: string 类型,源文件名 - destSubDir: string 类型,目标文件子目录路径 - destFileName: string 类型,目标文件名 返回值: - error: 如果复制过程中发生错误,返回相应的错误信息.
CreateFile 在指定子目录创建一个新文件 参数: - opt: *fscfg.Options 类型,包含文件系统配置选项 - afe: afero.Afero 类型,文件系统接口 - subDir: string 类型,子目录路径 - fileName: string 类型,文件名 返回值: - error: 如果创建过程中发生错误,返回相应的错误信息.
DecodeFromBytes 使用 gob 解码将 []byte 转换为指定的数据结构 参数: - data []byte: 要解码的字节切片 - result interface{}: 解码后的结果将存储在这个接口中 返回值: - error: 处理过程中发生的任何错误.
DefaultGuardOption 返回默认配置选项 返回值: - *GuardOption: 包含默认配置值的GuardOption对象.
DefaultMemoryConfig 返回默认配置 返回值: - *MemoryConfig: 默认配置对象.
DefaultMutexConfig 返回默认配置 返回值: - *MutexConfig: 默认配置对象.
DefaultOption 返回默认配置选项 返回值: - *ControllerOption: 默认配置选项实例.
DefaultRetryConfig 返回默认重试配置 返回值: - *RetryConfig: 默认配置对象.
Delete 删除指定的文件 参数: - opt: *fscfg.Options 类型,包含文件系统配置选项 - afe: afero.Afero 类型,文件系统接口 - subDir: string 类型,子目录路径 - fileName: string 类型,文件名 返回值: - error: 如果删除过程中发生错误,返回相应的错误信息.
DeleteAll 删除所有文件 参数: - opt: *fscfg.Options 类型,包含文件系统配置选项 - afe: afero.Afero 类型,文件系统接口 - subDir: string 类型,子目录路径 返回值: - error: 如果删除过程中发生错误,返回相应的错误信息.
DeserializeSliceTable 将字节切片反序列化为 SliceTable 参数: - data: []byte 需要反序列化的字节切片 返回值: - map[int64]*HashTable: 反序列化后的 SliceTable - error: 如果在反序列化过程中发生错误,返回相应的错误信息.
EncodeToBytes 使用 gob 编码将任意数据转换为 []byte 参数: - data interface{}: 要编码的数据 返回值: - []byte: 编码后的字节切片 - error: 处理过程中发生的任何错误.
Exists 检查指定的文件是否存在 参数: - opt: *fscfg.Options 类型,包含文件系统配置选项 - afe: afero.Afero 类型,文件系统接口 - subDir: string 类型,子目录路径 - fileName: string 类型,文件名 返回值: - bool: 文件是否存在 - error: 如果检查过程中发生错误,返回相应的错误信息.
ExtractPublicKey 从ECDSA私钥中提取公钥 参数: - privateKey *ecdsa.PrivateKey: 输入的ECDSA私钥 返回值: - []byte: 提取的公钥的字节表示.
FromBytes 泛型函数,用于将 []byte 转换回指定类型 参数: - data []byte: 要转换的字节切片 返回值: - T: 转换后的数据,类型为 T - error: 处理过程中发生的任何错误.
GenerateFileID 生成文件的唯一标识 参数: - privateKey: *ecdsa.PrivateKey ECDSA 私钥,用于生成文件ID - checksum: []byte 文件的校验和 返回值: - string: 生成的文件ID - error: 如果发生错误,返回错误信息.
GenerateKeyShares 生成密钥分片 参数: - ownerPriv *ecdsa.PrivateKey: 文件所有者的私钥,用于生成初始秘密 - fileIdentifier string: 文件的唯一标识符,用于生成特定于文件的密钥分片 返回值: - [][]byte: 生成的密钥分片列表,每个元素为一个密钥分片 - error: 生成过程中的错误信息,如果成功则为nil.
GenerateSecretFromPrivateKeyAndChecksum 使用私钥和文件校验和生成秘密 参数: - ownerPriv *ecdsa.PrivateKey: 文件所有者的私钥,用于生成秘密 - checksum []byte: 文件的校验和,用于生成特定于文件的秘密 返回值: - []byte: 生成的秘密字节数组 - error: 生成过程中的错误信息,如果成功则为nil.
GenerateSegmentID 生成用于文件片段的SegmentID 参数: - fileID string: 文件的唯一标识符 - index int64: 文件片段的索引 返回值: - string: 生成的SegmentID - error: 处理过程中发生的任何错误.
GenerateTaskID 生成任务ID 使用时间戳、私钥和随机数生成一个唯一的taskID 参数: - ownerPriv *ecdsa.PrivateKey: 所有者的私钥 返回值: - string: 生成的taskID - error: 处理过程中发生的任何错误.
GetAferoFileCRC32 计算文件的CRC32校验和 (afero.File版本) 参数: - file: 需要计算校验和的afero.File文件接口 返回值: - uint32: 文件的CRC32校验和 - error: 计算过程中的错误信息.
GetAferoFileMIME 获取文件的MIME类型 (afero.File版本) 参数: - file: 需要获取MIME类型的afero.File文件接口 返回值: - string: 文件的MIME类型 - error: 获取过程中的错误信息.
GetAferoFileMode 获取文件模式和权限 (afero.File版本) 参数: - file: 需要获取模式和权限的afero.File文件接口 返回值: - os.FileMode: 文件的模式和权限 - error: 获取过程中的错误信息.
GetAferoFileModTime 获取文件最后修改时间 (afero.File版本) 参数: - file: 需要获取修改时间的afero.File文件接口 返回值: - time.Time: 文件的最后修改时间 - error: 获取过程中的错误信息.
GetAferoFileName 获取文件名 (afero.File版本) 参数: - file: 需要获取文件名的afero.File文件接口 返回值: - string: 文件名 - error: 获取过程中的错误信息.
GetAferoFileSHA256 计算文件的SHA256哈希值 (afero.File版本) 参数: - file: 需要计算哈希值的afero.File文件接口 返回值: - []byte: 文件的SHA256哈希值 - error: 计算过程中的错误信息.
GetAferoFileSize 获取文件大小 (afero.File版本) 参数: - file: 需要获取大小的afero.File文件接口 返回值: - int64: 文件大小(字节) - error: 获取过程中的错误信息.
GetAferoFileSys 获取底层系统特定的文件信息 (afero.File版本) 参数: - file: 需要获取系统信息的afero.File文件接口 返回值: - interface{}: 系统特定的文件信息 - error: 获取过程中的错误信息.
GetBytesCRC32 计算字节切片的CRC32校验和 参数: - data: 需要计算校验和的字节切片 返回值: - uint32: 字节切片的CRC32校验和.
GetBytesSHA256 计算字节切片的SHA256哈希值 参数: - data: 需要计算哈希值的字节切片 返回值: - []byte: 字节切片的SHA256哈希值.
GetFileCRC32 计算文件的CRC32校验和 (*os.File版本) 参数: - file: 需要计算校验和的文件指针 返回值: - uint32: 文件的CRC32校验和 - error: 计算过程中的错误信息.
GetFileMIME 获取文件的MIME类型 (*os.File版本) 参数: - file: 需要获取MIME类型的文件指针 返回值: - string: 文件的MIME类型 - error: 获取过程中的错误信息.
GetFileMode 获取文件模式和权限 (*os.File版本) 参数: - file: 需要获取模式和权限的文件指针 返回值: - os.FileMode: 文件的模式和权限 - error: 获取过程中的错误信息.
GetFileModTime 获取文件最后修改时间 (*os.File版本) 参数: - file: 需要获取修改时间的文件指针 返回值: - time.Time: 文件的最后修改时间 - error: 获取过程中的错误信息.
GetFileName 获取文件名 (*os.File版本) 参数: - file: 需要获取文件名的文件指针 返回值: - string: 文件名 - error: 获取过程中的错误信息.
GetFileSHA256 计算文件的SHA256哈希值 (*os.File版本) 参数: - file: 需要计算哈希值的文件指针 返回值: - []byte: 文件的SHA256哈希值 - error: 计算过程中的错误信息.
GetFileSize 获取文件大小 (*os.File版本) 参数: - file: 需要获取大小的文件指针 返回值: - int64: 文件大小(字节) - error: 获取过程中的错误信息.
GetFileSys 获取底层系统特定的文件信息 (*os.File版本) 参数: - file: 需要获取系统信息的文件指针 返回值: - interface{}: 系统特定的文件信息 - error: 获取过程中的错误信息.
HashPublicKey 将公钥字节进行SHA-256和RIPEMD-160双重哈希 参数: - pubKeyBytes []byte: 公钥的字节表示 返回值: - []byte: 公钥的双重哈希值.
IsAferoFileDir 判断是否为目录 (afero.File版本) 参数: - file: 需要判断的afero.File文件接口 返回值: - bool: 是否为目录 - error: 判断过程中的错误信息.
IsFileDir 判断是否为目录 (*os.File版本) 参数: - file: 需要判断的文件指针 返回值: - bool: 是否为目录 - error: 判断过程中的错误信息.
IsRetryable 判断错误是否可重试 参数: - err: 要判断的错误 返回值: - bool: 是否可以重试该错误.
JoinStrings 函数将任意数量的字符串参数组合成一个单一的字符串 参数: - strs ...string: 要组合的字符串列表 返回值: - string: 组合后的字符串.
MarshalPrivateKey 将ECDSA私钥序列化为字节表示 参数: - privateKey *ecdsa.PrivateKey: 输入的ECDSA私钥 返回值: - []byte: 私钥的字节序列 - error: 失败时的错误信息.
MarshalPublicKey 将ECDSA公钥序列化为字节表示 参数: - publicKey ecdsa.PublicKey: 输入的ECDSA公钥 返回值: - []byte: 公钥的字节序列.
MergeFieldsForSigning 接受任意数量和类型的字段,将它们序列化并合并为一个 []byte 参数: - fields ...interface{}: 任意数量和类型的字段 返回值: - []byte: 合并后的字节切片 - error: 处理过程中发生的任何错误.
NewAferoFs 创建并返回一个新的 afero.Afero 实例 参数: - lc: fx.Lifecycle 对象,用于管理生命周期 - input: NewAferoFsInput 结构体,包含输入参数 返回值: - out: NewAferoFsOutput 结构体,包含输出结果 - err: 错误信息,如果没有错误则为 nil.
NewController 创建新的并发控制器 参数: - opts: 配置选项函数列表 返回值: - *ConcurrencyController: 新创建的控制器实例 - error: 创建过程中的错误.
NewError 创建新的控制器错误 参数: - code: 错误码 - message: 错误信息 - err: 原始错误 返回值: - *ControllerError: 新创建的错误实例.
NewMemoryManager 创建新的内存管理器 参数: - opts: 配置选项函数列表 返回值: - *MemoryManager: 内存管理器实例 - error: 创建过程中的错误.
NewResourceGuard 创建新的资源守卫 参数: - memManager: 内存管理器实例 - opts: 可选的配置选项函数列表 返回值: - *ResourceGuard: 新创建的资源守卫实例.
NewRetryableOperation 创建新的可重试操作实例 参数: - opts: 配置选项函数列表 返回值: - *RetryableOperation: 可重试操作实例 - error: 创建过程中的错误.
NewSafeRWMutex 创建新的安全读写锁 参数: - opts: 配置选项函数列表 返回值: - *SafeRWMutex: 安全读写锁实例 - error: 创建过程中的错误.
NewSegmentDistribution 创建新的分片分配管理器 返回值: - *SegmentDistribution: 初始化后的分片分配管理器实例.
PrivateKeyBytesToPublicKeyHash 通过私钥字节生成公钥哈希 参数: - privateKeyBytes []byte: 输入的私钥字节 返回值: - []byte: 生成的公钥哈希 - error: 如果在处理过程中发生错误,返回相应的错误信息.
PrivateKeyToPublicKeyHash 通过私钥生成公钥哈希 参数: - privateKey *ecdsa.PrivateKey: 输入的ECDSA私钥 返回值: - []byte: 生成的公钥哈希 - bool: 操作是否成功.
Read 从指定的文件读取数据 参数: - opt: *fscfg.Options 类型,包含文件系统配置选项 - afe: afero.Afero 类型,文件系统接口 - subDir: string 类型,子目录路径 - fileName: string 类型,文件名 返回值: - []byte: 读取的文件内容 - error: 如果读取过程中发生错误,返回相应的错误信息.
RecoverSecretFromShares 从密钥分片中恢复原始密钥 参数: - shareOne []byte: 第一个密钥分片,用于恢复原始密钥 - shareTwo []byte: 第二个密钥分片,用于恢复原始密钥 返回值: - []byte: 恢复的原始密钥数据 - error: 恢复过程中的错误信息,如果成功则为nil.
RenameFile 重命名或移动文件 参数: - opt: *fscfg.Options 类型,包含文件系统配置选项 - afe: afero.Afero 类型,文件系统接口 - oldSubDir: string 类型,原文件子目录路径 - oldFileName: string 类型,原文件名 - newSubDir: string 类型,新文件子目录路径 - newFileName: string 类型,新文件名 返回值: - error: 如果重命名过程中发生错误,返回相应的错误信息.
SeparateHashFromData 从数据中分离出SHA-256哈希值和原始数据 参数: - combinedData []byte: 包含哈希值和原始数据的字节切片 返回值: - []byte: 分离出的哈希值 - []byte: 分离出的原始数据 - error: 处理过程中发生的任何错误.
SerializeSliceTable 将 SliceTable 序列化为字节切片 参数: - sliceTable: map[int64]*HashTable 需要序列化的 SliceTable 返回值: - []byte: 序列化后的字节切片 - error: 如果在序列化过程中发生错误,返回相应的错误信息.
SplitString 函数将一个组合过的字符串分割成原始的字符串数组 参数: - combined string: 要分割的组合字符串 返回值: - []string: 分割后的字符串数组 - error: 处理过程中发生的任何错误.
ToBytes 泛型函数,用于将不同类型的数据转换为 []byte 参数: - data T: 要转换的数据,类型为 T 返回值: - []byte: 转换后的字节切片 - error: 处理过程中发生的任何错误.
UnmarshalPrivateKey 将字节序列反序列化为ECDSA私钥 参数: - privKeyBytes []byte: 私钥的字节表示 返回值: - *ecdsa.PrivateKey: 反序列化后的ECDSA私钥 - error: 失败时的错误信息.
UnmarshalPublicKey 将字节序列反序列化为ECDSA公钥 参数: - pubKeyBytes []byte: 公钥的字节表示 返回值: - ecdsa.PublicKey: 反序列化后的ECDSA公钥 - error: 失败时的错误信息.
WalkFiles 遍历指定目录下的文件并执行回调函数 参数: - opt: *fscfg.Options 类型,包含文件系统配置选项 - afe: afero.Afero 类型,文件系统接口 - subDir: string 类型,要遍历的子目录路径 - callback: func(filePath string, info os.FileInfo) error 类型,对每个文件执行的回调函数 返回值: - error: 如果遍历过程中发生错误,返回相应的错误信息.
WithAsyncCleanup 设置是否异步清理 参数: - async: 是否启用异步清理 返回值: - func(*GuardOption): 返回一个修改配置的函数.
WithAutoTuneGC 设置是否自动调整GC 参数: - enable: 是否启用 返回值: - func(*MemoryConfig): 配置函数.
WithBackoff 设置重试间隔配置选项 参数: - backoff: 重试间隔 返回值: - func(*MutexConfig): 配置函数.
WithCleanupInterval 设置清理间隔时间 参数: - interval: 新的清理间隔时间 返回值: - func(*GuardOption): 返回一个修改配置的函数.
WithCriticalThreshold 设置危险阈值 参数: - threshold: 危险阈值(0.0-1.0) 返回值: - func(*MemoryConfig): 配置函数.
WithGuardCleanupInterval 设置资源守卫的清��间隔时间 参数: - interval: 新的清理间隔时间 返回值: - func(*GuardOption): 返回一个修改配置的函数.
WithGuardCriticalThreshold 设置资源守卫的内存临界阈值 参数: - threshold: 新的内存临界阈值(0.0-1.0) 返回值: - func(*GuardOption): 返回一个修改配置的函数.
WithGuardMonitorInterval 设置资源守卫的监控间隔时间 参数: - interval: 新的监控间隔时间 返回值: - func(*GuardOption): 返回一个修改配置的函数.
WithInitialBackoff 设置初始重试等待时间 参数: - backoff: 初始重试等待时间 返回值: - func(*RetryConfig): 配置函数.
WithMaxBackoff 设置最大重试等待时间 参数: - maxBackoff: 最大重试等待时间 返回值: - func(*RetryConfig): 配置函数.
WithMaxElapsed 设置最大总耗时 参数: - maxElapsed: 最大总耗时 返回值: - func(*RetryConfig): 配置函数.
WithMaxRetries 设置最大重试次数 参数: - maxRetries: 最大重试次数 返回值: - func(*RetryConfig): 配置函数.
WithMaxWorkers 设置最大工作协程数 参数: - max: 最大工作协程数 返回值: - func(*ControllerOption): 配置函数.
WithMemoryThreshold 设置内���警告阈值 参数: - threshold: 新的内存警告阈值 返回值: - func(*GuardOption): 返回一个修改配置的函数.
WithMinWorkers 设置最小工作协程数 参数: - min: 最小工作协程数 返回值: - func(*ControllerOption): 配置函数.
WithMonitorInterval 设置监控间隔 参数: - interval: 监控间隔时间 返回值: - func(*MemoryConfig): 配置函数.
WithOnRetry 设置重试回调函数 参数: - onRetry: 重试回调函数 返回值: - func(*RetryConfig): 配置函数.
WithQueueSize 设置队列大小 参数: - size: 队列大小 返回值: - func(*ControllerOption): 配置函数.
WithRetries 设置重试次数配置选项 参数: - retries: 重试次数 返回值: - func(*MutexConfig): 配置函数.
WithTimeout 设置超时时间配置选项 参数: - timeout: 超时时间 返回值: - func(*MutexConfig): 配置函数.
WithWarningThreshold 设置警告阈值 参数: - threshold: 警告阈值(0.0-1.0) 返回值: - func(*MemoryConfig): 配置函数.
Write 写入数据到指定的文件 参数: - opt: *fscfg.Options 类型,包含文件系统配置选项 - afe: afero.Afero 类型,文件系统接口 - subDir: string 类型,子目录路径 - fileName: string 类型,文件名 - data: *[]byte 类型,要写入的数据的指针 返回值: - error: 如果写入过程中发生错误,返回相应的错误信息.

# Constants

默认清理间隔.
默认最大工作协程数.
默认最小工作协程数.
默认任务队列大小.
默认重试次数.
默认任务超时时间.
无效配置错误码.
系统繁忙错误码.
任务取消错误码.
任务未找到错误码.
任务超时错误码.
最大工作协程数.
默认指标收集间隔.
最小工作协程数.
默认关闭超时时间.
默认重试间隔.
默认内存使用危险阈值(90%).
默认初始重试等待时间.
默认最大重试等待时间.
默认最大总耗时.
默认GC超时时间.
默认最大重试次数.
默认最小GC间隔.
默认监控间隔.
默认重试次数.
默认超时时间.
默认内存使用预警阈值(80%).
默认清理间隔.
默认内存临界阈值(95%).
默认GC间隔.
最大重试等待时间.
默认最大重试次数.
默认内存警告阈值(90%).
默认监控间隔.
默认重试等待时间.
最大重试间隔.
最大重试次数.
最大超时时间.
危险.
正常.
警告.
关键优先级.
高优先级.
低优先级.
普通优先级.
已完成.
已失败.
等待中.
运行中.

# Structs

ConcurrencyController 并发控制器结构体.
ControllerError 定义错误类型.
ControllerOption 定义控制器配置选项.
ExtendedMetrics 扩展的指标统计.
GuardOption 定义资源守卫配置选项.
MemoryConfig 内存管理器配置.
MemoryManager 内存管理器.
MemoryMetrics 内存指标统计.
MutexConfig 互斥锁配置.
NewAferoFsInput 是用于传递给 NewAferoFs 函数的输入结构体。.
NewAferoFsOutput 是 NewAferoFs 函数的输出结构体。.
ResourceGuard 资源守卫实现.
ResourceStats 资源统计信息.
RetryableOperation 可重试操作结构体.
RetryConfig 重试配置.
SafeRWMutex 安全的读写锁结构体.
SegmentDistribution 分片分配管理器 用于管理文件分片在不同节点间的分配关系.
TaskInfo 存储任务的详细信息.
WorkerMetrics 基础指标统计.

# Interfaces

MemoryManagerInterface 定义内存管理器接口.

# Type aliases

MemoryLevel 内存使用级别.
TaskHandler 定义任务处理函数的类型.
TaskPriority 定义任务优先级类型.
TaskStatus 定义任务状态类型.