QuickShare 0.11.4 Docker Compose 部署指南
QuickShare 0.11.4 Docker Compose 部署指南:官方发行包校验、自建镜像、Compose 编排、管理员初始化、上传下载全链路与重启持久化实测,含 4 个启动排障实录
QuickShare 0.11.4 Docker Compose 部署指南
目标:在一台 Ubuntu 22.04 服务器上,基于官方 v0.11.4 发行包从零部署 QuickShare 文件分享服务,完成发行包校验、自建镜像、Compose 编排、管理员初始化、Web/API 登录、上传下载全链路验证与重启持久化实测。全部命令与回显均在 2026-10-31 于 Ubuntu 22.04 实机实测通过。
一、环境信息
本文实测所用的服务器环境与软件版本如下(查询/实测日期 2026-10-31):
- 操作系统:Ubuntu 22.04(x86_64)
- QuickShare 版本:0.11.4(官方最新稳定版,发布于 2026-01-30,来源:GitHub Releases 与 releases.atom 实查,查询日期 2026-10-31)
- Docker:24.x 与 Docker Compose v2(
docker compose子命令形态,实测Docker Compose version v2.29.7) - 交付形态:官方 zip 发行包(
quickshare_0.11.4_linux_amd64.zip,15.3MB)内含单二进制quickshare(32.7MB);官方不发布 Docker 镜像,本文以官方二进制 +debian:bookworm-slim基础镜像自建(见「二、镜像选型说明」) - Web 对外端口:8129(映射到服务的 8686 端口;0.11.x 默认监听 8686)
- 自定义网络:
quickshare-0.11.4-net(10.89.56.0/24) - 数据目录:部署目录下
data/(挂载到服务的/opt/quickshare/quickshare,含文件、SQLite 库、日志与文件索引) - 管理员账号:
admin/q1w2e3r4(由环境变量DEFAULTADMIN/DEFAULTADMINPWD首次启动自动创建,实测有效) - 项目背景与同类对比见 《QuickShare 介绍与选型指南》
二、镜像选型说明
QuickShare 官方不发布 Docker 镜像(Docker Hub 查询 ihexxa/quickshare 返回 object not found,查询日期 2026-10-31),仓库中也没有 Dockerfile。官方交付形态是各平台 zip 发行包,包内是一个内嵌了 React 前端静态资源的单文件 Go 二进制。因此容器化部署采用「官方发行包 + 官方基础镜像」的自建方案:
- 基础镜像:
debian:bookworm-slim——Go 静态编译二进制无运行时依赖,选 slim 版把体积压到最低;不选 alpine 是因为其 musl libc 与部分 DNS 行为差异可能引入隐性兼容问题,官方二进制以 glibc 环境为测试基准; - 内容物:仅 COPY 官方 zip 解压出的
quickshare二进制与lan.yml(语言包)两个文件,不引入任何第三方层; - 版本固定:镜像 tag 显式命名为
quickshare-local:0.11.4,与发行包版本一一对应,升级是显式动作。
该方案的优势是:二进制来源始终是官方 Releases(可校验 sha256),镜像内容透明可审计;代价是升级版本需重新构建镜像(一次 docker compose build 即可)。
三、前置条件
- 一台 x86_64 的 Ubuntu 22.04 服务器,具备 sudo 权限;
- 已安装 Docker Engine 与 Docker Compose v2;
- 对外服务端口未被占用(本文取 8129,可用
ss -ltn自查); - 磁盘剩余空间:镜像约 80MB 量级,另需为
data/预留业务文件容量(受用户空间配额约束,管理员默认 1GB、普通用户默认 100MB); - 服务器可访问 GitHub Releases 下载发行包(若直连缓慢可走代理,本文实测下载走
http://192.168.1.72:7897代理,见下方 ⚠️ 网络说明)。
确认环境:
docker compose version
实测回显:
Docker Compose version v2.29.7
ss -ltn | grep 8129 || echo "8129 free"
实测回显:
8129 free
⚠️ 网络说明:GitHub Releases 直连在本环境实测超时,本文实际通过代理
http://192.168.1.72:7897完成下载(2026-10-31 实测可用)。国内网络环境如无代理,可改用镜像加速站下载同一发行包后校验 sha256 一致性。
四、部署步骤
本节从空目录开始:下载校验发行包 → 编写镜像构建文件与配置 → 编排启动 → 验证健康与登录 → 上传下载全链路验证。
4.1 创建部署目录并下载发行包
mkdir -p /opt/quickshare && cd /opt/quickshare
wget -O quickshare_0.11.4_linux_amd64.zip "https://github.com/ihexxa/quickshare/releases/download/v0.11.4/quickshare_0.11.4_linux_amd64.zip"
实测回显(经代理下载,输出节选):
--2026-10-31 11:10:35-- https://github.com/ihexxa/quickshare/releases/download/v0.11.4/quickshare_0.11.4_linux_amd64.zip
HTTP request sent, awaiting response... 200 OK
Length: 15316185 (15M) [application/octet-stream]
Saving to: 'quickshare_0.11.4_linux_amd64.zip'
'quickshare_0.11.4_linux_amd64.zip' saved [15316185/15316185]
校验发行包(sha256 实测值,作为读者核对基准):
sha256sum quickshare_0.11.4_linux_amd64.zip
实测回显:
36256309c20e5494bafc499f5b9288c41c3d12ac63c4ffced25aae6754ae4ce0 quickshare_0.11.4_linux_amd64.zip
解压并确认包内结构:
unzip -o -q quickshare_0.11.4_linux_amd64.zip -d unpack
find unpack -type f -exec ls -la {} \;
实测回显:
-rw-r--r-- 1 root root 1017 Jan 30 20:28 unpack/dist/quickshare_linux_amd64/lan.yml
-rwxr-xr-x 1 root root 32680904 Jan 30 20:28 unpack/dist/quickshare_linux_amd64/quickshare
包内只有两个文件:quickshare 主程序与 lan.yml 语言包。
4.2 编写镜像构建文件 Dockerfile
在 /opt/quickshare 下创建 Dockerfile:
vim Dockerfile
写入以下内容:
FROM debian:bookworm-slim
COPY quickshare /opt/quickshare/bin/quickshare
COPY lan.yml /opt/quickshare/bin/lan.yml
WORKDIR /opt/quickshare
EXPOSE 8686
ENTRYPOINT ["/opt/quickshare/bin/quickshare", "-c", "/opt/quickshare/config.json"]
两个构建要点:
ENTRYPOINT必须带-c /opt/quickshare/config.json:QuickShare 不会自动读取工作目录下的配置文件,不带-c时验证码等配置保持默认开启(排障实录见「十一、常见问题」问题 2);- 二进制放在
bin/子目录而不是/opt/quickshare根:程序启动时要在工作目录创建名为quickshare的数据目录,二进制与数据目录同名会直接 panic(排障实录见「十一、常见问题」问题 1)。
把二进制与语言包复制到构建上下文:
cp unpack/dist/quickshare_linux_amd64/quickshare .
cp unpack/dist/quickshare_linux_amd64/lan.yml .
实测回显:
(cp 无输出即成功)
4.3 编写服务配置文件 config.json
创建 config.json(完整参数逐项详解见 《QuickShare 0.11.4 配置参数详解》):
vim config.json
写入以下内容:
{
"Server": {
"Host": "0.0.0.0",
"Port": 8686,
"Dynamic": {
"ClientCfg": {
"SiteName": "Quickshare",
"SiteDesc": "Quick and simple file sharing",
"AutoTheme": true
}
}
},
"Users": {
"CaptchaEnabled": false,
"MinPwdLen": 8
},
"Fs": {
"Root": "quickshare",
"InitFileIndex": true,
"SearchResultLimit": 16
},
"Db": {
"DbPath": "quickshare.sqlite"
},
"Workers": {
"WorkerCount": 2,
"QueueSize": 1024
}
}
配置要点逐项说明:
Server.Port: 8686:0.11.x 官方默认端口(0.0.x 时代的 8888 已废弃),与编排文件的端口映射对应;Users.CaptchaEnabled: false:关闭登录图形验证码。验证码默认开启,浏览器登录无影响;但命令行/API 脚本化登录需要先取验证码图片再人工识别,自动化运维不便,内网部署建议关闭(公网部署建议保留开启);Fs.Root: quickshare:数据目录名,即容器内/opt/quickshare/quickshare,与编排文件的数据挂载点对应;Db.DbPath: quickshare.sqlite:SQLite 数据库文件名,落在工作目录(即数据挂载点内)。
⚠️ 注意:
SiteName等站点外观项只在首次初始化时从配置文件写入数据库;此后修改站点名应调用PATCH /v1/settings/clientAPI(实测修改 config.json 重启后站点名不变化,实测过程见「十一、常见问题」问题 4)。
4.4 编写 docker-compose.yml
创建 docker-compose.yml(显式项目名与自定义网段,避免多套部署互相干扰):
vim docker-compose.yml
写入以下内容:
name: quickshare-0.11.4-stack
services:
quickshare:
build:
context: .
dockerfile: Dockerfile
image: quickshare-local:0.11.4
container_name: quickshare-0.11.4-server
hostname: quickshare
restart: unless-stopped
ports:
- "8129:8686"
environment:
DEFAULTADMIN: admin
DEFAULTADMINPWD: q1w2e3r4
volumes:
- ./config.json:/opt/quickshare/config.json:ro
- ./data:/opt/quickshare/quickshare
networks:
qs-net:
ipv4_address: 10.89.56.10
networks:
qs-net:
driver: bridge
ipam:
config:
- subnet: 10.89.56.0/24
编排文件逐项说明:
name: quickshare-0.11.4-stack:显式 Compose 项目名,docker compose down只影响本项目资源;image: quickshare-local:0.11.4+build::本地构建并打固定版本 tag;ports: "8129:8686":宿主 8129 → 服务 8686;environment:DEFAULTADMIN/DEFAULTADMINPWD是首次初始化管理员账号的环境变量(变量名为配置字段名大写)。不提供时首次启动会交互式询问管理员名并生成随机密码;volumes:config.json只读挂载进服务根目录;./data挂载为数据目录(首次启动自动建目录);networks:自定义网段 10.89.56.0/24 并固定地址 10.89.56.10,便于内部联调与防火墙放行。
4.5 构建镜像并启动
mkdir -p data
docker compose build
实测回显(输出节选):
#10 exporting to image
#10 writing image sha256:8d2d8c8a4a4e... done
#10 naming to docker.io/library/quickshare-local:0.11.4 done
docker compose up -d
实测回显:
Container quickshare-0.11.4-server Created
Container quickshare-0.11.4-server Starting
Container quickshare-0.11.4-server Started
启动后确认运行状态与初始化日志:
docker compose ps
实测回显:
NAME STATUS PORTS
quickshare-0.11.4-server Up 4 seconds 0.0.0.0:8129->8686/tcp, [::]:8129->8686/tcp
docker logs quickshare-0.11.4-server 2>&1 | head -6
实测回显:
warning: Database does not exist in (quickshare.sqlite), skipped
{"level":"warn","ts":1793416573.0867908,"msg":"index file not found"}
{"level":"info","ts":1793416573.086967,"msg":"file index inited(false)"}
{"level":"info","ts":1793416573.0874772,"msg":"quickshare is starting","hostname:port":"0.0.0.0:8686"}
日志解读:Database does not exist ... skipped 表示首次启动数据库尚未创建(正常);注意日志中没有出现 Please input admin name 与 password is generated 提示,说明 DEFAULTADMIN/DEFAULTADMINPWD 环境变量已生效,管理员账号以 admin/q1w2e3r4 静默创建。
4.6 验证健康检查与登录
健康检查(公开端点,无需登录):
curl -s -X OPTIONS -o /dev/null -w 'health http=%{http_code}\n' http://127.0.0.1:8129/v2/public/settings/health
实测回显:
health http=200
登录获取会话(tk 为 JWT 会话 cookie):
curl -s -D headers.txt -X POST http://127.0.0.1:8129/v2/public/login \
-H 'Content-Type: application/json' \
-d '{"user":"admin","pwd":"q1w2e3r4","captcha_id":"","captcha_input":""}' \
-w 'login http=%{http_code}\n'
实测回显:
{"msg":"OK"}
login http=200
提取会话令牌并查询当前用户信息:
TOKEN=$(grep -i set-cookie headers.txt | sed 's/.*tk=\([^;]*\).*/\1/')
echo "token length: ${#TOKEN}"
curl -s -H "Cookie: tk=$TOKEN" http://127.0.0.1:8129/v2/my/self
实测回显(输出节选):
token length: 250
{"id":"0","name":"admin","role":"admin","quota":{"spaceLimit":"1073741824","uploadSpeedLimit":52428800,"downloadSpeedLimit":52428800},"usedSpace":"0","preferences":{...}}
管理员默认配额实测值:空间 1GB(1073741824 字节)、上传/下载限速 50MB/s(52428800 字节/秒),与普通用户默认配额(100MB/1MB/s)不同。
⚠️ 注意:
curl -c cookies.txt对 QuickShare 的会话 cookie(名为tk、无显式 Domain 属性的 HttpOnly cookie)存在保存不稳定的问题,脚本化操作建议像上文一样从响应头手工提取tk值并用-H "Cookie: tk=$TOKEN"携带(排障实录见「十一、常见问题」问题 3)。
4.7 上传与下载全链路验证
上传采用「创建任务 → 分块传输」两步协议(分块内容 base64 编码,offset 必须与服务端已收字节数一致):
TOKEN=$(grep -i set-cookie headers.txt | sed 's/.*tk=\([^;]*\).*/\1/')
# 第一步:创建上传任务(声明路径与大小)
curl -s -H "Cookie: tk=$TOKEN" -X POST http://127.0.0.1:8129/v1/fs/files \
-H 'Content-Type: application/json' \
-d '{"path":"hello.txt","fileSize":12}' -w ' http=%{http_code}\n'
实测回显:
{"msg":"OK"} http=200
# 第二步:传输分块(content 为文件内容的 base64 编码)
B64=$(printf 'hello world!' | base64 -w0)
curl -s -H "Cookie: tk=$TOKEN" -X PATCH http://127.0.0.1:8129/v1/fs/files/chunks \
-H 'Content-Type: application/json' \
-d "{\"path\":\"hello.txt\",\"content\":\"$B64\",\"offset\":0}" -w '\nhttp=%{http_code}\n'
实测回显:
{"path":"hello.txt","isDir":false,"fileSize":12,"uploaded":12}
http=200
uploaded:12 与 fileSize:12 相等,文件已自动从暂存区落盘。
下载验证(fp 为文件路径参数):
curl -s -H "Cookie: tk=$TOKEN" "http://127.0.0.1:8129/v1/fs/files?fp=hello.txt" -w '\nhttp=%{http_code}\n'
实测回显:
hello world!
http=200
再验证根目录列表(确认文件与数据库、日志同层可见):
curl -s -H "Cookie: tk=$TOKEN" "http://127.0.0.1:8129/v1/fs/dirs?path="
实测回显:
{"cwd":".","metadatas":[{"name":"admin","size":4096,"modTime":"2026-10-31T03:16:13.087352318Z","isDir":true,"sha1":""},{"name":"fileindex.jsonl","size":32,"modTime":"2026-10-31T03:17:01.800851574Z","isDir":false,"sha1":""},{"name":"hello.txt","size":12,"modTime":"2026-10-31T03:20:47.030460279Z","isDir":false,"sha1":"430ce34d020724ed75a196dfc2ad67c77772d169"},{"name":"quickshare.log","size":2673,"modTime":"2026-10-31T03:20:47.055461047Z","isDir":false,"sha1":""},{"name":"quickshare.sqlite","size":65536,"modTime":"2026-10-31T03:20:47.038460525Z","isDir":false,"sha1":""}]}
浏览器访问 http://<服务器IP>:8129 即可使用 Web 界面(用 admin/q1w2e3r4 登录)。
五、数据持久化说明
QuickShare 的全部状态收敛在数据目录一个挂载点上,重启与升级不丢数据:
| 数据 | 位置(容器内 = 宿主 ./data/) | 说明 |
|---|---|---|
| 业务文件 | files/ | 上传完成的正式文件 |
| 上传暂存 | uploadings/ | 分块上传中未完成的临时分片 |
| 元数据库 | quickshare.sqlite | 用户、配额、分享、站点配置 |
| 文件索引 | fileindex.jsonl | 搜索用文件索引(可重建) |
| 服务日志 | quickshare.log | 应用日志 |
重启持久化实测(docker compose restart 后原会话令牌仍有效、数据仍在):
docker compose restart
sleep 3
curl -s -H "Cookie: tk=$TOKEN" http://127.0.0.1:8129/v2/my/self -o /dev/null -w 'self after restart http=%{http_code}\n'
curl -s -H "Cookie: tk=$TOKEN" "http://127.0.0.1:8129/v1/fs/files?fp=hello.txt" -w '\nhttp=%{http_code}\n'
实测回显:
self after restart http=200
hello world!
http=200
重启后既不需要重新登录(会话令牌仍有效),文件内容也原样保留,持久化验证通过。备份时打包整个 ./data/ 目录即可同时带走文件与元数据。
六、环境变量表
QuickShare 0.11.4 通过配置结构体字段名大写化的约定注入环境变量(仅标注了 env 注入的字段生效):
| 环境变量 | 作用 | 默认值 | 本文取值 |
|---|---|---|---|
DEFAULTADMIN | 首次初始化的管理员账号名;未提供时首次启动交互式询问(stdin) | 无 | admin |
DEFAULTADMINPWD | 首次初始化的管理员密码;未提供时自动生成随机密码打印在日志 | 无(随机) | q1w2e3r4 |
TOKENSECRET | 会话令牌签名密钥;留空时自动生成 | 自动生成 | 未设置 |
PORT | 监听端口(覆盖 Server.Port) | 8686 | 未设置 |
⚠️ 注意:
DEFAULTADMIN/DEFAULTADMINPWD只在数据库未初始化时(首次启动)生效;账号一旦建好,修改这两个变量不会更新已有账号密码(改密走PATCH /v1/users/pwdAPI 或管理员强制重置PATCH /v2/admin/users/pwd/force-set)。TOKENSECRET自动生成时存于配置态,若更换部署方式后旧会话失效,重新登录即可。
七、配置参数说明
本文 Compose 方案采用「配置文件 + 环境变量 + 命令行参数」三层配置的组合:
- 配置文件
config.json:随镜像以-c指定加载,承载端口、验证码开关、目录、数据库路径、工作线程等运行参数,支持 JSON/YAML 格式,可叠加多份(后面的覆盖前面的); - 环境变量:见第六节表格,用于部署敏感项(管理员初始账号)与密钥注入;
- 命令行参数:
-h/--host、-p/--port、-d/--db、-c/--configs,优先级最高,可临时覆盖端口与数据库路径(常用法见 《QuickShare 0.11.4 配置参数详解》)。
加载优先级实测结论:命令行参数 > 配置文件 > 数据库内站点配置 > 程序默认值。站点外观(站点名/背景/主题)属数据库内配置,首次初始化写入后以 API 修改为准。
八、配置文件挂载
docker-compose.yml 中的两处挂载承担了「配置进、数据存」两个方向:
volumes:
- ./config.json:/opt/quickshare/config.json:ro
- ./data:/opt/quickshare/quickshare
config.json以:ro只读挂载:服务只读配置,修改配置在宿主侧编辑后docker compose restart生效(实测:关闭验证码的配置重启后生效,GET /v2/public/settings/client返回"captchaEnabled":false);./data挂载为数据目录Fs.Root:文件、SQLite 库、索引、日志全部落宿主目录,删除服务本身不影响数据。
配置修改生效验证(重启后确认站点客户端配置):
curl -s http://127.0.0.1:8129/v2/public/settings/client
实测回显:
{"clientCfg":{"siteName":"Quickshare","siteDesc":"Quick and simple file sharing","bg":{"url":"","repeat":"repeat","position":"center","align":"fixed","bgColor":""},"allowSetBg":false,"autoTheme":true},"captchaEnabled":false}
九、等价 docker run
与上述 Compose 等价的一次性 docker run 命令(便于理解各参数的容器化映射):
docker run -d \
--name quickshare-0.11.4-server \
-p 8129:8686 \
-e DEFAULTADMIN=admin \
-e DEFAULTADMINPWD=q1w2e3r4 \
-v /opt/quickshare/config.json:/opt/quickshare/config.json:ro \
-v /opt/quickshare/data:/opt/quickshare/quickshare \
--restart unless-stopped \
quickshare-local:0.11.4
与 Compose 版的差异:无自定义网络与固定 IP(使用默认 bridge)、无项目名聚合管理。生产建议仍用 Compose 形态编排。
十、常用运维命令
在 /opt/quickshare 部署目录下:
# 查看服务状态
docker compose ps
实测回显:
NAME STATUS PORTS
quickshare-0.11.4-server Up 4 seconds 0.0.0.0:8129->8686/tcp, [::]:8129->8686/tcp
# 查看实时日志
docker compose logs -f --tail 20
实测回显(输出节选):
quickshare-0.11.4-server | {"level":"info","ts":1793416573.0874772,"msg":"quickshare is starting","hostname:port":"0.0.0.0:8686"}
quickshare-0.11.4-server | [GIN] 2026/10/31 - 03:16:27 | 200 | 47.433µs | 10.89.56.1 | OPTIONS "/v2/public/settings/health"
quickshare-0.11.4-server | [GIN] 2026/10/31 - 03:16:27 | 403 | 102.112µs | 10.89.56.1 | POST "/v2/public/login"
# 重启服务(配置修改后)
docker compose restart
# 停止服务
docker compose down
实测回显:
Container quickshare-0.11.4-server Stopping
Container quickshare-0.11.4-server Stopped
# 升级版本:替换发行包 → 重建镜像 → 重建服务(数据在 ./data 不受影响)
sha256sum quickshare_<新版本>_linux_amd64.zip
cp unpack/dist/quickshare_linux_amd64/quickshare .
docker compose build
docker compose up -d
十一、常见问题
Q1:启动直接 panic,报 can not create quickshare folder: there is a file with same name?
原因:程序启动时要在当前工作目录创建名为 quickshare 的数据目录,若工作目录下已存在同名文件(最典型的就是把二进制命名为 quickshare 并放在工作目录根),目录创建失败直接 panic。实测复现回显:
warning: Database does not exist in (quickshare.sqlite), skipped
{"level":"fatal","ts":1793416318.59893,"msg":"can not create quickshare folder: there is a file with same name"}
解决:把二进制放在 bin/ 子目录(如本文 Dockerfile 的 /opt/quickshare/bin/quickshare),工作目录 /opt/quickshare 下不出现同名文件;或换一个独立的数据工作目录。
Q2:登录始终返回 403 login failed,账号密码确认无误?
原因:0.11.x 登录默认开启图形验证码(Users.CaptchaEnabled 默认 true),JSON 请求里 captcha_id/captcha_input 为空时验证失败返回 403。且 QuickShare 不会自动读取工作目录下的 config.json,必须用 -c 参数显式指定——本文 ENTRYPOINT 已带 -c;若手动 docker run 或裸机启动漏掉 -c,配置文件等于没挂。实测回显:
{"error":"login failed"}
http=403
解决:配置文件带 -c 加载并设置 "CaptchaEnabled": false(内网);或保留验证码走浏览器登录。
Q3:脚本化调用 API 返回 403 access denied,浏览器却正常?
原因:未携带会话 cookie。QuickShare 的会话 cookie 名为 tk(JWT),且实测 curl -c/-b 对这种无 Domain 属性的 HttpOnly cookie 保存不稳定,导致后续请求变成匿名访问——匿名(visitor 角色)无文件操作权限。实测回显:
{"error":"access denied"}
http=403
解决:从登录响应头提取 tk 值,每个请求用 -H "Cookie: tk=$TOKEN" 显式携带(见 4.6/4.7 节实测命令)。
Q4:修改 config.json 里的 SiteName 并重启,站点名没变?
原因:站点外观(站点名/描述/背景/主题)属于数据库内的动态配置,首次初始化时从配置文件写入 SQLite,此后以数据库为准,改配置文件不再生效。实测重启后 GET /v2/public/settings/client 仍返回旧站点名。解决:调用设置 API 修改(实测生效):
curl -s -H "Cookie: tk=$TOKEN" -X PATCH http://127.0.0.1:8129/v1/settings/client \
-H 'Content-Type: application/json' \
-d '{"clientCfg":{"siteName":"QSDemo","siteDesc":"Quick and simple file sharing","bg":{"url":"","repeat":"repeat","position":"center","align":"fixed","bgColor":""},"allowSetBg":false,"autoTheme":true}}' -w ' http=%{http_code}\n'
实测回显:
{"msg":"OK"} http=200
Q5:./quickshare -h 想看帮助,结果 panic?
原因:-h 短参数同时被定义为 --host(监听地址),参数解析器把缺值的 -h 视为用法错误直接 panic,帮助信息反而无法通过 -h 查看。实测回显:
Usage:
quickshare [OPTIONS]
Application Options:
-h, --host= server hostname
...
panic: Usage:
quickshare [OPTIONS]
...
goroutine 1 [running]:
main.main()
/home/runner/work/quickshare/quickshare/cmd/start/main.go:18 +0x185
解决:这实际是 0.11.4 的参数解析缺陷,帮助信息已随 panic 打印在输出里;正常运行传长参数形式(--host=、--port=)不触发(详见 《QuickShare 0.11.4 配置参数详解》)。
十二、参考链接
- v0.11.4 发行页:https://github.com/ihexxa/quickshare/releases/tag/v0.11.4
- 项目仓库:https://github.com/ihexxa/quickshare
- 官方站点:https://ihexxa.github.io/quickshare.site/
- 官方 FAQ:https://github.com/ihexxa/quickshare/blob/dev/docs/FAQ_zh-cn.md
- 本专栏系列:《QuickShare 介绍与选型指南》 · 《QuickShare 0.11.4 配置参数详解》 · 《QuickShare 0.11.4 API 使用详解》