Browse Source

增加检索字段

master
453530270@qq.com 2 years ago
parent
commit
2de00b7eba
  1. 4
      fstool/db/dbconst.go
  2. 6
      fstool/db/sqliteDb.go
  3. 0
      fstool/ups.db
  4. 12
      fstool/util/fsutil.go

4
fstool/db/dbconst.go

@ -3,7 +3,7 @@ package db
// 定义数据库中用的模型
type StFileInfo struct {
Id string `json:"id"`
Fpath string `json:"fpath"`
Fhash string `json:"fhash"`
Fpath string `json:"fpath"` //文件路径
Fhash string `json:"fhash"` //base64 后的路径,用来方便查询
Fname string `json:"fname"`
}

6
fstool/db/sqliteDb.go

@ -2,6 +2,7 @@ package db
import (
"fmt"
"fstool/util"
// 导入包,导入前缀为下划线,则init函数被执行,然后注册驱动。
"github.com/jmoiron/sqlx"
@ -47,6 +48,7 @@ func CreateTable() {
id INTEGER PRIMARY KEY NOT NULL,
fname TEXT NOT NULL,
fpath TEXT NOT NULL,
fpbs TEXT NOT NULL,
fhash TEXT NOT NULL
);`
@ -61,8 +63,10 @@ func CreateTable() {
// 插入数据
func InsertStf(sf StFileInfo) {
// base64后的路径,用来检索
bspath := util.Bas64end(sf.Fpath)
// 插入语句
res, err := db.Exec("INSERT INTO f_info(fname, fpath,fhash) VALUES(?,?,?)", sf.Fname, sf.Fpath, sf.Fhash)
res, err := db.Exec("INSERT INTO f_info(fname,fpath,fpbs,fhash) VALUES(?,?,?,?)", sf.Fname, sf.Fpath, bspath, sf.Fhash)
if err != nil {
fmt.Printf("Insert data failed: %v\n", err)
return

0
fstool/ups.db

12
fstool/util/fsutil.go

@ -2,6 +2,7 @@ package util
import (
"crypto/sha256"
"encoding/base64"
"fmt"
"io"
"os"
@ -58,3 +59,14 @@ func CalacHash(rfile string) string {
hastString := fmt.Sprintf("%x", hashBytes)
return hastString
}
// url safe
func Bas64end(str string) string {
return base64.URLEncoding.EncodeToString([]byte(str))
}
// base64 url safe uneconde
func Base64dec(bsstr string) string {
dedc, _ := base64.URLEncoding.DecodeString(bsstr)
return string(dedc)
}

Loading…
Cancel
Save