xdrop

xdrop

當使用者想要從終端機透過 Xdrop 伺服器傳送或接收檔案、要求自動化加密的 Xdrop 分享連結工作流程、提供 Xdrop 的 `/t/:transferId#k=...` 連結來下載並在本機解密,或需要 Xdrop CLI 參數如 `--quiet`、`--json`、`--expires-in`、`--output` 或 `--api-url` 時,使用此技能,即使使用者沒有明確提及技能名稱。

65星標
6分支
更新於 2026/6/14
SKILL.md
readonlyread-only
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> 並保留 manifest 的相對路徑。

注意事項

  • 缺少 #k=... 片段的下載連結無法解密。請索取完整的原始分享 URL。
  • 當其他指令或呼叫者需要擷取 stdout 時,請使用 --quiet。進度記錄會輸出到 stderr,但最終結果仍然重要。

使用限制

  • 當其他指令或腳本需要擷取 stdout 時,建議使用 --quiet
  • 下載時請保持完整的分享連結片段。
  • 除非使用者明確要求,否則不要繞過腳本內建的路徑清理或傳輸清理行為,使用手動臨時指令。