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 { type StFileInfo struct {
Id string `json:"id"` Id string `json:"id"`
Fpath string `json:"fpath"` Fpath string `json:"fpath"` //文件路径
Fhash string `json:"fhash"` Fhash string `json:"fhash"` //base64 后的路径,用来方便查询
Fname string `json:"fname"` Fname string `json:"fname"`
} }

6
fstool/db/sqliteDb.go

@ -2,6 +2,7 @@ package db
import ( import (
"fmt" "fmt"
"fstool/util"
// 导入包,导入前缀为下划线,则init函数被执行,然后注册驱动。 // 导入包,导入前缀为下划线,则init函数被执行,然后注册驱动。
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
@ -47,6 +48,7 @@ func CreateTable() {
id INTEGER PRIMARY KEY NOT NULL, id INTEGER PRIMARY KEY NOT NULL,
fname TEXT NOT NULL, fname TEXT NOT NULL,
fpath TEXT NOT NULL, fpath TEXT NOT NULL,
fpbs TEXT NOT NULL,
fhash TEXT NOT NULL fhash TEXT NOT NULL
);` );`
@ -61,8 +63,10 @@ func CreateTable() {
// 插入数据 // 插入数据
func InsertStf(sf StFileInfo) { 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 { if err != nil {
fmt.Printf("Insert data failed: %v\n", err) fmt.Printf("Insert data failed: %v\n", err)
return return

0
fstool/ups.db

12
fstool/util/fsutil.go

@ -2,6 +2,7 @@ package util
import ( import (
"crypto/sha256" "crypto/sha256"
"encoding/base64"
"fmt" "fmt"
"io" "io"
"os" "os"
@ -58,3 +59,14 @@ func CalacHash(rfile string) string {
hastString := fmt.Sprintf("%x", hashBytes) hastString := fmt.Sprintf("%x", hashBytes)
return hastString 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