goploader 1.0.2 常用 CLI 命令与工具详解

梳理 goploader 1.0.2 服务端、客户端与 curl 三个命令行入口的全部参数与真实回显,含一次性链接、进度条、剪贴板实测。

goploaderGolang文件传输文件分享自托管2026/10/30

goploader 1.0.2 常用 CLI 命令与工具详解

目标:系统梳理 goploader 1.0.2 的三个命令行入口——服务端 goploader-server、官方客户端 gpldr 与 curl 直连 HTTP API,逐参数给出真实回显与注意事项。本文所有命令与回显均在 Ubuntu 24.04 LTS(x86_64)上实测通过(服务端与客户端均为 1.0.2 官方 Release 二进制,2026-10-30)。

一、环境信息

  • 操作系统:Ubuntu 24.04.5 LTS(x86_64)
  • 软件版本:goploader 1.0.2(服务端 goploader-server、客户端 gpldr,官方 Release Linux x86_64 包)
  • 服务端实例:192.168.146.128:8152(name_server: 192.168.146.128:8152,下同)
  • 客户端配置文件:~/.config/goploader.conf.yml
  • 服务端工作目录:/opt/goploader/(内含 conf.yml、goploader-server)
  • 校验基准:下载包 sha256 与官方 goploader_1.0.2_checksums.txt 比对通过

二、工具概览

goploader 的日常操作围绕三个入口展开:

工具角色典型用途
goploader-server服务端进程启动文件分享服务、指定配置、跑初始向导
gpldr官方客户端上传文件/命令输出/截图,支持进度条、一次性链接、剪贴板等
curl通用 HTTP 客户端无客户端环境下直连服务端上传下载

三者共享同一套服务端协议(multipart/form-data 上传、/v/... 下载),选择建议:日常交互选 gpldr(体验最好),脚本与无客户端环境选 curl,服务端管理只有 goploader-server。

三、前置条件

  1. 服务端已部署并运行(本文实例监听 192.168.146.128:8152);
  2. 客户端二进制已就位:从官方 Releases 下载 goploader_client_Linux_x86_64.tar.gz 解压出 gpldr,与官方 checksums 校验通过(实测回显 goploader_client_Linux_x86_64.tar.gz: OK);
  3. curl 已安装(Ubuntu 24.04 默认自带)。

四、各工具详解

4.1 服务端 goploader-server

服务端只有两个参数。查看帮助:

./goploader-server --help

实测回显:

Usage of ./goploader-server:
  -c, --conf="conf.yml": Local path to configuration file.
  -i, --initial=false: Run the initial setup of the server.

-c/--conf:指定配置文件路径。 默认读取当前目录下的 conf.yml,配置文件放在别处时显式指定:

./goploader-server -c /etc/goploader/conf.yml

实测回显(正常启动,日志节选):

INFO |     server | 2026/10/30 - 16:41:45 |                 | Started goploader server on port : 8153

-i/--initial:运行初始配置向导。 首次部署不想手写 conf.yml 时使用:

./goploader-server -i

实测回显:

Please go to http://127.0.0.1:8080 to setup goploader.

浏览器打开该地址填表提交即可在当前目录生成 conf.yml(实测页面 HTTP 200,标题 Goploader)。

⚠️ 注意:官方文档写向导端口为 8008,1.0.2 实测监听 8080;向导是一次性工具,生成配置后请用常规方式(不带 -i)启动服务。

4.2 客户端 gpldr:帮助与首次运行

查看客户端全部参数:

gpldr --help

实测回显(完整):

Usage of ./bin/gpldr:
  -c, --clipboard=false: Copy the returned URL directly to the clipboard (needs xclip or xsel)
  -d, --delay=0s: Define a delay before the program executes (including taking the screenshot)
      --hostname="": Specify the server you want to send your file to
  -l, --lifetime="1d": Specify the lifetime of your file (30m, 1h, 6h, 1d, 1w)
  -n, --name="": Specify the filename you want
  -o, --once=false: Your upload will be visible only once and then deleted from the server
  -p, --progress=false: Displays a progress bar
  -s, --screenshot=false: Screenshot and uploads your current screen (Need the `import` command)
  -t, --tee=false: Displays stdin to stdout
  -v, --verbose=false: Activates the debug mode
  -w, --window=false: Click on the window you want to screenshot (only works with -s/--screenshot option)

首次运行会自动生成配置文件。客户端启动时读取 ~/.config/goploader.conf.yml,不存在则写入默认配置(实测回显,首次运行仅出现一次这两行日志):

2026/10/30 16:33:46 Creating /root/.config/ directory.
2026/10/30 16:33:46 Configuration file /root/.config/goploader.conf.yml not found. Writing default configuration.

默认内容(实测):

service: http://127.0.0.1:8080
token: ""

使用自己的服务器时把 service 改为服务端地址;服务端设了 token 时填入 token 键:

service: http://192.168.146.128:8152
token: ""

4.3 基本上传:文件与标准输入

指定文件上传(省略 --hostname 时使用 conf 的 service,本节起均已把 service 配置为 http://192.168.146.128:8152):

gpldr sample.txt

实测回显:

http://192.168.146.128:8152/v/rm86DQR3wz/WETrvuCa21OSTE6g

不指定文件时从标准输入读取(文件名默认记为 stdin),可把命令输出直接变成分享链接:

echo "piped from stdin" | gpldr -t

实测回显(-t 先回显流入的内容,再输出链接):

piped from stdin
http://192.168.146.128:8152/v/KFAOStJL17/wwGOOtIbWYR5U51C

4.4 --hostname:直连指定服务器

临时向另一台 goploader 服务器上传而无需改配置文件:

gpldr --hostname=http://192.168.146.128:8152 sample.txt

实测回显:

http://192.168.146.128:8152/v/b8A3y33D3x/7RrGFwyGGdr1DqcV

⚠️ 注意:必须使用 --hostname=<地址> 的等号写法。空格写法在该版本客户端上会直接报错退出(实测回显):

flag needs an argument: --hostname
Usage of ./bin/gpldr:

随后打印完整用法列表并以非零码退出。

4.5 -l/--lifetime:有效期档位

设定文件在服务端的存留时长,可选 30m / 1h / 6h / 1d / 1w,默认 1d:

gpldr -l 30m sample.txt

实测回显:

http://192.168.146.128:8152/v/HabkaG5RCm/I0j14ciionyYfB7b

超出五档之外的值(如 2h)服务端会拒绝上传并返回 400 Invalid duration。

4.6 -o/--once:一次性链接

上传仅可下载一次的文件,首次下载后服务端立即删除:

gpldr -o sample.txt

实测回显:

http://192.168.146.128:8152/v/A3xqISQ0LH/5WVl1CR0EwmbBJxA

下载验证(首次 200 拿到内容,第二次 404):

curl http://192.168.146.128:8152/v/A3xqISQ0LH/5WVl1CR0EwmbBJxA
hello goploader 1.0.2 on ubuntu 22.04
curl -s -o /dev/null -w "%{http_code}" http://192.168.146.128:8152/v/A3xqISQ0LH/5WVl1CR0EwmbBJxA
404

4.7 -n/--name:指定下载文件名

覆盖默认文件名(默认取本地文件名,stdin 上传默认为 stdin)。上传一个改名文件并核对响应头:

gpldr -n renamed-file.txt sample.txt

实测回显:

http://192.168.146.128:8152/v/sX6LVe0byO/zUwBeb9oxx0imydR
curl -I http://192.168.146.128:8152/v/sX6LVe0byO/zUwBeb9oxx0imydR | grep -i disposition
Content-Disposition: filename="renamed-file.txt"

4.8 -p/--progress:上传进度条

大文件上传时显示百分比、速率与已上传量:

gpldr -p big.bin

实测回显(6 MB 文件,本机内网上传近乎瞬时):

 0 B / 6.00 MiB    0.00% 6.00 MiB / 6.00 MiB  100.00% 529.28 MiB/s 6.00 MiB / 6.00 MiB  100.00% 278.39 MiB/s 6.00 MiB / 6.00 MiB  100.00% 188.28 MiB/shttp://192.168.146.128:8152/v/dN649c0ILu/4bCmDQL7SlWGneBv

💡 说明:数据源为 stdin 时总大小未知,进度条按官方文档说明只显示上传速度,不显示百分比。

4.9 -v/--verbose:调试输出

gpldr -v sample.txt

实测回显:

Debug mode is activated
Main datasource is sample.txt
Initialization pipe
Executing multipart post
Started the goroutine to pipe data
Multipart post is done, reading data
http://192.168.146.128:8152/v/xvfbbKIKk7/dxDcvWGpLqwc2jjJ

排障时先加 -v,可看到数据源判定与 multipart 提交的完整过程。

4.10 -d/--delay:延迟执行

按 10s/2m 等格式延迟启动(配合截图使用最多)。用 time 验证实际等待:

time gpldr -d 2s sample.txt

实测回显:

http://192.168.146.128:8152/v/lc8m3ywFKs/06ClSTRvYM9QYC1A

real	0m2.006s
user	0m0.000s
sys	0m0.004s

4.11 -c/--clipboard:结果链接进剪贴板

需要桌面环境的剪贴板工具(xclip/xsel/wl-clipboard)。在无剪贴板工具的终端会话实测:

gpldr -c sample.txt

实测回显(报错但仍输出链接,退出码 1):

Unable to copy to clipboard: No clipboard utilities available. Please install xsel, xclip, wl-clipboard or Termux:API add-on for termux-clipboard-get/set.
http://192.168.146.128:8152/v/ya6t2oNpeR/qJpnv53RzTIzdCqD

成功时输出 Copied URL to clipboard 并不回显链接。桌面环境安装 xclip(X11)或 wl-clipboard(Wayland)后即可正常使用。

4.12 -s/--screenshot 与 -w/--window:截图上传

-s 截取当前屏幕并直接上传,-w 允许先框选窗口/区域(需与 -s 连用)。官方文档说明该功能依赖以下至少一个工具:gnome-screenshot、import(ImageMagick)或 scrot;未安装时该选项不可用。无桌面环境的服务器上无法使用,本文环境未展开实测。

官方还支持布尔短参数连写,如「延迟 5 秒截屏上传并复制链接」可写作:

gpldr -pscd 5s

(-p、-s、-c 为布尔参数可连写,-d 需要取值写在末尾。)

4.13 curl 直连上传下载

无客户端环境用 curl 同样完成全部操作。普通上传:

curl -F file=@sample.txt http://192.168.146.128:8152/

实测回显:

http://192.168.146.128:8152/v/IaPqlhsHBI/tREEeMWBSnEKbxAf

一次性上传(once 字段非空即生效):

curl -F once=1 -F file=@once.txt http://192.168.146.128:8152/

实测回显:

http://192.168.146.128:8152/v/Z3iFKaJy7m/BdlpK1gDdDC0KMm0

带有效期上传:

curl -F duration=30m -F file=@sample.txt http://192.168.146.128:8152/

实测回显:

http://192.168.146.128:8152/v/tm0eETt7KB/l8kcNV3rVWjbx1Dl

下载与查头:

curl http://192.168.146.128:8152/v/IaPqlhsHBI/tREEeMWBSnEKbxAf
curl -I http://192.168.146.128:8152/v/IaPqlhsHBI/tREEeMWBSnEKbxAf

实测回显(内容 + 响应头):

hello goploader 1.0.2 on ubuntu 22.04
HTTP/1.1 200 OK
Content-Disposition: filename="sample.txt"
Date: Fri, 30 Oct 2026 08:31:31 GMT
Content-Length: 38
Content-Type: text/plain; charset=utf-8

服务端开启 token 后,curl 上传需追加 -F token=<口令>,缺失或错误返回 401 Incorrect token;超过服务端 size_limit 返回 413 Entity is too large (Max : 20 MB)(实测均为逐字回显)。

用 curl 访问首页还能拿到终端教程(服务端识别 curl UA 后输出):

curl http://192.168.146.128:8152/

实测回显:

                   _      _        
                  | |    | |       
      ____  ____  | |  _ | |  ____ 
     / _  ||  _ \ | | / || | / ___)
    ( ( | || | | || |( (_| || |    
     \_|| || ||_/ |_| \____||_|    
    (_____||_|

Because file sharing is meant to be easy
 ~ Server-side encrypted file sharing ~

Usage

Upload from stdin
$ tree | curl -F file=@- http://192.168.146.128:8152
Simple file upload
$ curl -F file=@myfile.txt http://192.168.146.128:8152

五、注意事项

  1. --hostname 只支持等号写法:--hostname http://...(空格形式)在 1.0.2 客户端实测报 flag needs an argument 并退出,务必写 --hostname=http://...;
  2. 一次性链接不可恢复:-o 上传的文件在首次下载后即从服务端删除,链接误发或下载失败都无法重试,重要内容请保留本地原件;
  3. 有效期只有五档:30m/1h/6h/1d/1w,客户端 -l 与 curl -F duration= 共用同一白名单,其他值一律 400;
  4. 客户端配置只有 service 与 token 两个键:其余行为全部走命令行参数;配置文件在 ~/.config/goploader.conf.yml,首次运行自动生成;
  5. 上传响应即短链接,链接包含解密密钥:/v/<资源ID>/<密钥> 中的密钥段只在响应里出现一次,请妥善保管完整链接;
  6. 布尔短参数可连写(如 -ps),带值的参数(-d/-l/-n/--hostname)需紧跟取值;
  7. 客户端无 --version 参数:确认版本请比对下载包与官方 checksums。

六、常见问题

Q1:客户端报 open ../../sample.txt: no such file or directory 后退出?

上传目标文件路径不存在(实测回显 2026/10/30 16:51:58 open ../../sample.txt: no such file or directory,退出码 1)。检查相对路径基准是当前工作目录,或改用绝对路径。

Q2:报 Unable to copy to clipboard: ...?

-c 需要系统剪贴板工具。安装 xclip(X11)、wl-clipboard(Wayland)后重试;报错时链接仍会打印在终端,不会丢失上传结果(见 4.11 实测)。

Q3:上传返回 401 Incorrect token?

服务端设置了 token。客户端在 ~/.config/goploader.conf.yml 的 token 键填入同一口令;curl 加 -F token=<口令>。

Q4:上传返回 413 Entity is too large (Max : 20 MB)?

文件超过服务端 size_limit(默认 20 MB),需服务端调参,客户端无法绕过。

Q5:下载返回 404?

三种可能:once 文件已被首次下载删除;文件超过有效期被服务端清理;URL 的资源 ID 或密钥段拼写错误。密钥段错误同样表现为 404(资源存在但无法构造解密器的场景会由服务端拦截)。

Q6:截图选项在服务器上报错?

-s/-w 依赖桌面截图工具(gnome-screenshot/import/scrot 至少其一)与图形会话,无桌面服务器上不可用,官方文档亦注明 Mac/Windows 平台的截图功能未经测试。

七、参考链接