项目简介
本项目是基于Go语言的LevelDB Web管理工具,提供API接口供外部程序或网页前端进行数据操作,内嵌简单HTTP服务器提供API服务。用户能通过该工具对LevelDB数据库进行管理和操作,如注册数据库、获取键值对、获取键值对数量、获取键值对详情、删除键值对和更新键值对等。
项目的主要特性和功能
- 支持独立server模式和共用server模式嵌入Go代码中使用。
- 可独立启动程序或通过Docker启动。
- 提供对LevelDB数据库的多种管理操作,包括注册数据库、获取键值对、获取键值对数量、获取键值对详情、删除键值对和更新键值对等。
- 提供简单的Web界面,方便用户在浏览器中进行操作。
安装使用步骤
环境变量说明
LEVEL_ADMIN_ADDRESS
:http服务监听地址,默认由系统分配端口,例如:4333
。LEVEL_ADMIN_DEBUG
:开启debug模式,值为true
。
使用示例
1. 独立server模式[嵌入go代码中]
在代码中设置环境变量LEVEL_ADMIN_ADDRESS=:4333
,示例代码如下:
```go
package main
import ( )
func main() { db, _ := leveldb.OpenFile("/tmp/leveldb", nil) // 正常的db操作逻辑... // 正常的db操作逻辑...
// 独立端口模式:
// 只需要向leveldbAdmin注册db的指针和一个用于区分的描述
levelAdmin.GetLevelAdmin().Register(db, "description").Start()
}
``
启动后,当
LEVEL_ADMIN_DEBUG=true`时会有日志输出,可通过输出的地址在浏览器中访问。
2. 共用server模式[嵌入go代码中]
此模式将不处理LEVEL_ADMIN_ADDRESS
配置,示例代码如下:
```go
package main
import ( "net/http" )
func main() { // 其他server 处理 http.HandleFunc("/other", func(writer http.ResponseWriter, request *http.Request) { writer.Write([]byte("hello other")) }) go http.ListenAndServe(":4333", nil)
// 正常的db操作逻辑...
db, _ := leveldb.OpenFile("/tmp/leveldb", nil)
// 正常的db操作逻辑...
//levelAdmin 路由全以 leveldb_admin 开头, 可以与其他http server共用server, 需要手动设置 ServerMux
levelAdmin.GetLevelAdmin().Register(db, "description").SetServerMux(http.DefaultServeMux).Start()
} ```
3. 独立启动(执行程序)
先编译程序:
bash
go build cmd/main.go
然后运行程序,指定LevelDB数据库路径:
bash
./mian -path /var/leveldb-web -path /var/leveldb
4. 独立启动(docker)
先构建Docker镜像:
bash
docker build -t leveladmin .
然后运行Docker容器:
bash
docker run -d -e LEVEL_ADMIN_DEBUG=true -e LEVEL_ADMIN_ADDRESS=:4333 -p 4333:4333 -v /var/level:/var/level leveladmin /bin/main -path /var/level
浏览器访问
启动后,在浏览器中访问http://127.0.0.1:4333/leveldb_admin/static/
即可使用该工具。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】