修复参数
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
本项目 fork 自 [Gossa, 由 Pierre Dubouilh 及 Gossa Authors 开发维护](https://github.com/pldubouilh/gossa), 并重新初始化 git.
|
本项目 fork 自 [Gossa, 由 Pierre Dubouilh 及 Gossa Authors 开发维护](https://github.com/pldubouilh/gossa), 并重新初始化 git.
|
||||||
|
|
||||||
AFI 是 Go 编写的轻量级文件服务器, 是基于 Gossa 的现代化增强维护分支
|
AFI(Agile File Interface) 是 Go 编写的轻量级文件服务器, 是基于 Gossa 的现代化增强维护分支
|
||||||
|
|
||||||
特色:
|
特色:
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ AFI 是 Go 编写的轻量级文件服务器, 是基于 Gossa 的现代化增强
|
|||||||
## 使用方法
|
## 使用方法
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
% ./afi --help
|
$ ./afi --help
|
||||||
```
|
```
|
||||||
|
|
||||||
## 编译
|
## 编译
|
||||||
@@ -108,7 +108,7 @@ export GOBIN=$GOPATH/bin/
|
|||||||
|
|
||||||
关于测试数据:
|
关于测试数据:
|
||||||
|
|
||||||
- AFI 本身"自缚一手": 坦率地说, 尽管在同一文件夹进行索引, 但仅 AFI 具有完备的文件管理器功能, 为显示元数据, 调用比其他服务器多, 页面体积和结构都比其他软件复杂, 并且只有 AFI 启用了 gzip(虽然是BestSpeed), 因此相较而言 AFI 在对比中比较吃亏且测试数据是不严谨的, 不能证明 "AFI 的性能是 Nginx 的 25%", 笔者提供这个数据仅仅是为了做除了 QPS 以外与其他服务器软件响应的性能参考(毕竟 QPS 和 CPU 性能挂钩, 树莓派上绝对跑不到下方的 QPS)
|
- AFI 本身"自缚一手": 尽管在同一文件夹进行索引, 但坦率地说, 仅 AFI 具有完备的文件管理器功能, 为显示元数据, 调用比其他服务器多, 页面体积和结构都比其他软件复杂, 并且只有 AFI 启用了 gzip(虽然是BestSpeed), 因此相较而言 AFI 在对比中比较吃亏且测试数据是不严谨的, 不能证明 "AFI 的性能是 Nginx 的 25%", 笔者提供这个数据仅仅是为了做除了 QPS 以外与其他服务器软件响应的性能参考(毕竟 QPS 和 CPU 性能与磁盘 IO 挂钩, 树莓派和SD卡上绝对跑不到下方的 QPS)
|
||||||
- 测试的地址是 web 界面, 不是数据接口, 理论上数据接口是单一调用, 更快但不能进行对比实验
|
- 测试的地址是 web 界面, 不是数据接口, 理论上数据接口是单一调用, 更快但不能进行对比实验
|
||||||
- 您可用下方提供的命令在您的平台上获取测试数据 (请不要用它压力测试他人的网站!)
|
- 您可用下方提供的命令在您的平台上获取测试数据 (请不要用它压力测试他人的网站!)
|
||||||
|
|
||||||
|
|||||||
6
afi.go
6
afi.go
@@ -58,9 +58,9 @@ type pageTemplate struct {
|
|||||||
var host = flag.String("h", "127.0.0.1", "监听的主机地址") // 监听的主机地址
|
var host = flag.String("h", "127.0.0.1", "监听的主机地址") // 监听的主机地址
|
||||||
var port = flag.String("p", "8001", "监听的端口") // 监听的端口
|
var port = flag.String("p", "8001", "监听的端口") // 监听的端口
|
||||||
var extraPath = flag.String("prefix", "/", "afi 的 URL 访问路径前缀, 例如 /afi/ (斜杠很重要)") // URL前缀路径
|
var extraPath = flag.String("prefix", "/", "afi 的 URL 访问路径前缀, 例如 /afi/ (斜杠很重要)") // URL前缀路径
|
||||||
var symlinks = flag.Bool("symlinks", false, "跟随符号链接 警告: 启用后符号链接可能会跳出已定义的\"根目录\" (default false)") // 是否跟随符号链接
|
var symlinks = flag.Bool("symlinks", false, "跟随符号链接 警告: 启用后符号链接可能会跳出已定义的\"根目录\"") // 是否跟随符号链接
|
||||||
var verb = flag.Bool("verb", false, "详细输出") // 是否输出详细日志
|
var verb = flag.Bool("verb", false, "详细输出") // 是否输出详细日志
|
||||||
var skipHidden = flag.Bool("k", true, "\n跳过隐藏文件") // 是否跳过隐藏文件(以.开头)
|
var skipHidden = flag.Bool("k", false, "跳过隐藏文件") // 是否跳过隐藏文件(以.开头)
|
||||||
// var ro = flag.Bool("ro", false, "只读模式(无法修改文件系统)") // 是否只读模式
|
// var ro = flag.Bool("ro", false, "只读模式(无法修改文件系统)") // 是否只读模式
|
||||||
var title = flag.String("title", "%PATH%", "页面标题, 用 %PATH% 指代完整路径, %ITEM% 指代末端文件/目录名, 不会泄露根目录目录名")
|
var title = flag.String("title", "%PATH%", "页面标题, 用 %PATH% 指代完整路径, %ITEM% 指代末端文件/目录名, 不会泄露根目录目录名")
|
||||||
var authstr = flag.String("auth", `{"admin": "password"}`, "可写用户的认证数据 (也可以用环境变量 AFI_AUTH 设置, AFI_AUTH 是最优先且最安全的)") // 这个flag只能用来调试 不然服务器一个ps就泄露了
|
var authstr = flag.String("auth", `{"admin": "password"}`, "可写用户的认证数据 (也可以用环境变量 AFI_AUTH 设置, AFI_AUTH 是最优先且最安全的)") // 这个flag只能用来调试 不然服务器一个ps就泄露了
|
||||||
@@ -575,7 +575,7 @@ func main() {
|
|||||||
handler = http.StripPrefix(*extraPath, http.FileServer(http.Dir(rootPath)))
|
handler = http.StripPrefix(*extraPath, http.FileServer(http.Dir(rootPath)))
|
||||||
|
|
||||||
// 输出启动信息
|
// 输出启动信息
|
||||||
fmt.Printf("Agile File Indexer 版本 %s\n", ver)
|
fmt.Printf("Agile File Interface 版本 %s\n", ver)
|
||||||
fmt.Printf("AFI 是 Gossa 的增强分支, 但是并不完全向下兼容原版 Gossa 的参数\n")
|
fmt.Printf("AFI 是 Gossa 的增强分支, 但是并不完全向下兼容原版 Gossa 的参数\n")
|
||||||
fmt.Printf("AFI 已启动, 根目录为 %s\n", rootPath)
|
fmt.Printf("AFI 已启动, 根目录为 %s\n", rootPath)
|
||||||
fmt.Printf("详细输出: %t, 符号链接跟随: %t, 跳过隐藏文件: %t\n", *verb, *symlinks, *skipHidden)
|
fmt.Printf("详细输出: %t, 符号链接跟随: %t, 跳过隐藏文件: %t\n", *verb, *symlinks, *skipHidden)
|
||||||
|
|||||||
Reference in New Issue
Block a user