Documentation ¶
Overview ¶
定义共享的基类和方法
Index ¶
- func CalculateFileHash(file afero.File) ([]byte, error)
- func CalculateHash(data []byte) []byte
- func CheckAndMkdir(dirPath string) error
- func CompareHashes(hash1, hash2 []byte) bool
- func CopyFile(opt *opts.Options, afe afero.Afero, ...) error
- func CreateFile(opt *opts.Options, afe afero.Afero, subDir, fileName string) error
- func DecodeFromBytes(data []byte, result interface{}) error
- func Delete(opt *opts.Options, afe afero.Afero, subDir, fileName string) error
- func DeleteAll(opt *opts.Options, afe afero.Afero, subDir string) error
- func EncodeToBytes(data interface{}) ([]byte, error)
- func Exists(opt *opts.Options, afe afero.Afero, subDir, fileName string) (bool, error)
- func FromBytes[T any](data []byte) (T, error)
- func GenerateFileID(checksum []byte) (string, error)
- func GenerateSecretFromPrivateKeyAndChecksum(ownerPriv *ecdsa.PrivateKey, checksum []byte) ([]byte, error)
- func GenerateSegmentID(fileID string, index int) (string, error)
- func GenerateTaskID(ownerPriv *ecdsa.PrivateKey) (string, error)
- func GetContentType(file afero.File) (string, error)
- func GetFileChecksum(file afero.File) ([]byte, error)
- func JoinStrings(strs ...string) string
- func MarshalPrivateKey(privateKey *ecdsa.PrivateKey) ([]byte, error)
- func MergeFieldsForSigning(fields ...interface{}) ([]byte, error)
- func OpenFile(opt *opts.Options, afe afero.Afero, subDir, fileName string) (*os.File, error)
- func Read(opt *opts.Options, afe afero.Afero, subDir, fileName string) ([]byte, error)
- func RenameFile(opt *opts.Options, afe afero.Afero, ...) error
- func SeparateHashFromData(combinedData []byte) ([]byte, []byte, error)
- func SplitString(combined string) ([]string, error)
- func ToBytes[T any](data T) ([]byte, error)
- func UnmarshalPrivateKey(privKeyBytes []byte) (*ecdsa.PrivateKey, error)
- func WaitForStatusChange(cond *sync.Cond, checkStatus func() bool)
- func WalkFiles(opt *opts.Options, afe afero.Afero, subDir string, ...) error
- func Write(opt *opts.Options, afe afero.Afero, subDir, fileName string, data []byte) error
- type BitSet
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CompareHashes ¶ added in v1.0.0
CompareHashes 比较两个哈希值是否相等 参数:
- hash1: []byte 第一个哈希值
- hash2: []byte 第二个哈希值
返回值:
- bool: 如果两个哈希值相等,返回 true;否则返回 false
func CopyFile ¶ added in v1.0.0
func CopyFile(opt *opts.Options, afe afero.Afero, srcSubDir, srcFileName, destSubDir, destFileName string) error
CopyFile 将文件从源路径复制到目标路径
func CreateFile ¶ added in v1.0.0
CreateFile 在指定子目录创建一个新文件
func DecodeFromBytes ¶
DecodeFromBytes 使用 gob 解码将 []byte 转换为指定的数据结构
func EncodeToBytes ¶
EncodeToBytes 使用 gob 编码将任意数据转换为 []byte
func GenerateFileID ¶ added in v1.0.0
GenerateFileID 生成用于文件的FileID
func GenerateSecretFromPrivateKeyAndChecksum ¶ added in v1.0.0
func GenerateSecretFromPrivateKeyAndChecksum(ownerPriv *ecdsa.PrivateKey, checksum []byte) ([]byte, error)
GenerateSecretFromPrivateKeyAndChecksum 使用私钥和文件校验和生成秘密
func GenerateSegmentID ¶ added in v1.0.0
GenerateSegmentID 生成用于文件片段的SegmentID
func GenerateTaskID ¶ added in v1.0.0
func GenerateTaskID(ownerPriv *ecdsa.PrivateKey) (string, error)
GenerateTaskID 生成任务ID 使用时间戳、私钥和随机数生成一个唯一的taskID 参数:
- ownerPriv *ecdsa.PrivateKey: 所有者的私钥
返回值:
- string: 生成的taskID
- error: 处理过程中发生的任何错误
func GetContentType ¶ added in v1.0.0
GetContentType 获取 MIME 类型的方法
func GetFileChecksum ¶ added in v1.0.0
GetFileChecksum 计算文件的校验和的方法
func JoinStrings ¶ added in v1.0.0
joinStrings 函数将任意数量的字符串参数组合成一个单一的字符串。 这里使用了变长参数,允许函数接受任意数量的字符串。 特别地,函数内部对字符串中的逗号和反斜杠进行了转义处理, 以确保它们不会影响最终组合字符串的解析。
func MarshalPrivateKey ¶ added in v1.0.0
func MarshalPrivateKey(privateKey *ecdsa.PrivateKey) ([]byte, error)
MarshalPrivateKey 将ECDSA私钥序列化为字节表示 参数:
- privateKey (*ecdsa.PrivateKey): 输入的ECDSA私钥
返回值:
- []byte: 私钥的字节序列
- error: 失败时的错误信息
func MergeFieldsForSigning ¶
MergeFieldsForSigning 接受任意数量和类型的字段,将它们序列化并合并为一个 []byte。
func RenameFile ¶ added in v1.0.0
func RenameFile(opt *opts.Options, afe afero.Afero, oldSubDir, oldFileName, newSubDir, newFileName string) error
RenameFile 重命名或移动文件
func SeparateHashFromData ¶
SeparateHashFromData 从数据中分离出SHA-256哈希值和原始数据
func SplitString ¶ added in v1.0.0
splitString 函数将一个组合过的字符串分割成原始的字符串数组。 这个函数逆转了 joinStrings 函数的操作,正确处理了转义的逗号和反斜杠。
func UnmarshalPrivateKey ¶ added in v1.0.0
func UnmarshalPrivateKey(privKeyBytes []byte) (*ecdsa.PrivateKey, error)
UnmarshalPrivateKey 将字节序列反序列化为ECDSA私钥 参数:
- privKeyBytes ([]byte): 私钥的字节表示
返回值:
- *ecdsa.PrivateKey: 反序列化后的ECDSA私钥
- error: 失败时的错误信息
func WaitForStatusChange ¶ added in v1.0.0
waitForStatusChange 是一个通用的等待状态变化的函数。它接受一个条件变量和一个检查状态的函数。 它会阻塞调用它的goroutine直到checkStatus函数返回true。
Types ¶
type BitSet ¶ added in v1.0.0
type BitSet struct {
// contains filtered or unexported fields
}
BitSet 实现一个简单的位集合,用于表示多个布尔值的集合。 bits 字节切片,用于存储位信息。
func NewBitSet ¶ added in v1.0.0
NewBitSet 创建一个新的 BitSet 实例。 参数:
- size: int 表示位集合的大小。
返回值:
- *BitSet: 新创建的 BitSet 实例。
func (*BitSet) Any ¶ added in v1.0.0
Any 检查位集合中是否有任意一位为 1。 返回值:
- bool: 如果有任意一位为 1,返回 true;否则返回 false。
func (*BitSet) IsSet ¶ added in v1.0.0
IsSet 检查位集合中的某个位是否为 1。 参数:
- i: int 表示要检查的位的索引。
返回值:
- bool: 如果该位为 1,返回 true;否则返回 false。