filebrowser-cli

command module
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 12, 2026 License: MIT Imports: 2 Imported by: 0

README

filebrowser-cli

Go ≥ 1.21 要求 | 跨平台:Windows / Linux / macOS

⚠️ 本项目无 UI

filebrowser-cli 是被 skill / agent 调用的 shell 工具,可观察入口在 stdout / stderr / 退出码。无 Web UI / TUI / 图形界面。

概述

filebrowser-cli 提供了对 FileBrowser HTTP API 的完整命令行封装,支持文件管理、分享、搜索等全部功能。

项目结构

filebrowser-cli/
├── cmd/                  # 命令定义
│   ├── root.go           # 根命令
│   ├── login.go          # 登录命令
│   ├── ls.go             # 列出目录
│   ├── upload.go         # 上传文件
│   ├── download.go       # 下载文件
│   ├── share.go          # 分享命令
│   ├── search.go         # 搜索命令
│   └── ...               # 其他命令
├── internal/             # 私有实现
│   ├── client/           # API 客户端
│   └── config/           # 配置管理
├── pkg/                  # 可复用的公共包
│   ├── config/           # 配置加载
│   ├── httpclient/       # HTTP 客户端
│   ├── output/           # 输出格式化
│   └── version/          # 版本信息
├── integration/          # 集成测试
├── main.go               # 入口文件
├── go.mod
├── Makefile
└── README.md

安装

从源码安装
git clone https://github.com/ANIAN0/filebrowser-cli.git
cd filebrowser-cli
go build -o filebrowser-cli .
使用 go install
go install github.com/ANIAN0/filebrowser-cli@latest
使用 Makefile
make install

配置

配置文件位置(按优先级)
  1. --config <path> 命令行参数
  2. FILEBROWSER_CLI_CONFIG 环境变量
  3. 二进制同级目录的 config.yaml(项目安装模式)
  4. 用户目录:~/.config/filebrowser-cli/config.yaml(Unix)或 %APPDATA%\filebrowser-cli\config.yaml(Windows)
配置文件示例
version: 1
instance_url: "http://localhost:8080"
username: "admin"
password: "${FB_PASSWORD}"  # 支持环境变量插值
default_expires: 24
default_unit: "hours"
环境变量插值

配置文件中支持 ${ENV_VAR} 格式的环境变量插值:

password: "${FB_PASSWORD}"

运行前设置环境变量:

export FB_PASSWORD="your-password"

子命令

认证(Auth)
命令 说明
login 登录并获取 token
renew 续期 token
whoami 显示当前用户信息
资源管理(Resource)
命令 说明
ls <path> 列出目录内容
tree <path> 显示目录树
info <path> 显示文件/目录详细信息
upload <local> [remote] 上传文件
download <remote> [local] 下载文件
mkdir <path> 创建目录
rm <path> 删除文件/目录
mv <src> <dst> 移动/重命名
cp <src> <dst> 复制
预览(Preview)
命令 说明
preview <path> [--size thumb|big] 预览图片
分享(Share)
命令 说明
share create <path> 创建分享链接
share list 列出所有分享
share delete <hash> 删除分享
share info <path> 查看分享信息
命令 说明
search <path> <query> 搜索文件

全局选项

选项 说明
--config <path> 指定配置文件路径
--json 输出 JSON 格式(可被 jq 解析)
--verbose, -v 详细日志到 stderr
--timeout <seconds> HTTP 请求超时(默认 60)
--no-color 禁用颜色输出
--version 输出版本信息
--help, -h 显示帮助

退出码约定

退出码 含义 触发条件
0 成功 请求成功(2xx)
1 客户端错误 HTTP 4xx(401/403/404/409)
2 服务端错误 HTTP 5xx(500/502/503/504)
3 网络错误 DNS 失败、连接超时、连接拒绝
4 配置错误 配置文件不存在、字段缺失、环境变量未设置

错误详情输出到 stderr,成功数据输出到 stdout。

使用示例

# 登录
filebrowser-cli login

# 列出根目录
filebrowser-cli ls /

# 上传文件
filebrowser-cli upload ./report.pdf /documents/report.pdf

# 创建分享链接
filebrowser-cli share create /documents/report.pdf --expires 24 --unit hours

# 搜索文件
filebrowser-cli search / "report"

# 使用 JSON 输出
filebrowser-cli ls / --json | jq '.items'

开发

# 运行测试
make test

# 清理构建产物
make clean

许可证

MIT License

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
client
Package client provides FileBrowser API clients.
Package client provides FileBrowser API clients.
config
Package config provides FileBrowser-specific configuration.
Package config provides FileBrowser-specific configuration.
pkg
config
Package config provides shared config loading.
Package config provides shared config loading.
httpclient
Package httpclient provides HTTP client utilities for CLI tools.
Package httpclient provides HTTP client utilities for CLI tools.
output
Package output provides text and JSON formatters for CLI tools.
Package output provides text and JSON formatters for CLI tools.
version
Package version provides build-time version information.
Package version provides build-time version information.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL