xdrop

xdrop

当用户希望通过终端向Xdrop服务器发送或获取文件、要求自动化加密的Xdrop共享链接工作流、提供Xdrop `/t/:transferId#k=...` 链接以本地下载并解密、或需要Xdrop CLI标志(如 `--quiet`、`--json`、`--expires-in`、`--output` 或 `--api-url`)时使用此技能,即使他们未明确提及技能名称。

65Star
6Fork
更新于 2026/6/14
SKILL.md
readonly只读
name
xdrop
description

当用户希望通过终端向Xdrop服务器发送或获取文件、要求自动化加密的Xdrop共享链接工作流、提供Xdrop `/t/:transferId#k=...` 链接以本地下载并解密、或需要Xdrop CLI标志(如 `--quiet`、`--json`、`--expires-in`、`--output` 或 `--api-url`)时使用此技能,即使他们未明确提及技能名称。

使用此技能目录中的捆绑脚本。

可用脚本

  • scripts/upload.mjs — 将本地文件或目录上传到Xdrop服务器并打印共享链接
  • scripts/download.mjs — 下载Xdrop共享链接,本地解密并保存文件

环境要求:

  • Bun
  • 本地文件系统访问
  • 网络访问目标Xdrop服务器

上传

bun scripts/upload.mjs --server <xdrop-site-url> <file-or-directory> [...]

相关时优先使用以下标志:

  • --quiet:抑制进度输出,保持stdout干净
  • --json:返回 transferIdshareUrlexpiresAt
  • --expires-in <seconds>:选择支持的过期时间
  • --api-url <url>:覆盖默认的 <server>/api/v1
  • --name <value>:设置传输显示名称
  • --concurrency <n>:限制每个文件的并行上传数

有用示例:

bun scripts/upload.mjs --server http://localhost:8080 ./dist/report.pdf
bun scripts/upload.mjs --server http://localhost:8080 --quiet ./archive.zip
bun scripts/upload.mjs --server http://localhost:8080 --expires-in 600 --json ./notes.txt

如果用户需要验证,上传一个小的临时文件,然后确认公共传输API或浏览器可以打开返回的链接。

下载

需要完整的共享链接,包括 #k=...。没有片段密钥,传输无法解密。

bun scripts/download.mjs "<share-url>"

相关时优先使用以下标志:

  • --output <dir>:选择目标目录
  • --quiet:抑制进度输出,保持stdout干净
  • --json:返回 transferIdoutputRoot 和保存的文件路径
  • --api-url <url>:覆盖默认的 <share-origin>/api/v1

有用示例:

bun scripts/download.mjs "http://localhost:8080/t/abc123#k=..."
bun scripts/download.mjs --output ./downloads "http://localhost:8080/t/abc123#k=..."
bun scripts/download.mjs --quiet --json --output ./downloads "http://localhost:8080/t/abc123#k=..."

默认情况下,下载器写入 ./xdrop-<transferId> 并保留清单的相对路径。

注意事项

  • 没有 #k=... 片段的下载链接无法解密。请询问完整的原始共享URL。
  • 当其他命令或调用者需要捕获stdout时,使用 --quiet。进度日志否则会输出到stderr,但最终结果仍然重要。

安全边界

  • 当其他命令或脚本需要捕获stdout时,优先使用 --quiet
  • 保持下载的完整共享链接片段完整。
  • 除非用户明确要求,否则不要使用手动临时命令绕过脚本内置的路径清理或传输清理行为。