Files
go-afero-encfs/main.go
2024-09-01 20:23:03 +08:00

84 lines
1.9 KiB
Go

package main
import (
"encoding/hex"
"fmt"
"io"
"git.hatter.ink/hatter/go-afero-encfs/encfs"
)
func main() {
key := []byte{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
}
fmt.Println(hex.EncodeToString(key))
encFs := encfs.NewEncFs(key)
encFs2 := encfs.NewEncFs(nil)
// -----------------------------------------------------------------------------------------------------------------------------------
encFile1, err := encFs2.Create("test1")
if err != nil {
fmt.Println(err)
return
}
encFile1.Write([]byte("hello world"))
encFile1.Write([]byte("XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"))
encFile1.WriteAt([]byte("TEST"), 10)
encFile1.Write([]byte("------"))
encFile1.Close()
encFile2, err := encFs2.Create("test2")
if err != nil {
fmt.Println(err)
return
}
encFile2.Write([]byte("hello world"))
seekI, err := encFile2.Seek(2, 0)
fmt.Println(seekI, ", ", err)
encFile2.Write([]byte("XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"))
encFile2.Write([]byte("------"))
encFile2.Close()
// -----------------------------------------------------------------------------------------------------------------------------------
func() {
encFile, err := encFs.Create("test")
if err != nil {
fmt.Println(err)
return
}
defer encFile.Close()
encFile.Write([]byte("hello world"))
encFile.Write([]byte("XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"))
encFile.WriteAt([]byte("TEST"), 10)
encFile.Write([]byte("------"))
encFile.Write([]byte("Z"))
encFile.Write([]byte("---------------------------------------"))
encFile.Write([]byte("Z"))
}()
func() {
encFile, err := encFs.Open("test")
if err != nil {
fmt.Println(err)
return
}
rr, err := io.ReadAll(encFile)
fmt.Println(hex.EncodeToString(rr))
fmt.Println(string(rr), err)
buff := make([]byte, 5)
readLen, err := encFile.ReadAt(buff, 3)
fmt.Println(readLen, err)
fmt.Println(string(buff))
readLen, err = encFile.Read(buff)
fmt.Println(readLen, err)
fmt.Println(string(buff))
}()
}