tmp.sogo.tw — 匿名檔案暫存, 到期自動消失 (v0820.2041) 上傳 (最簡單的一條): curl -F "f=@報告.pdf" -F "tag=給客戶" https://tmp.sogo.tw/1314 回你一段 JSON, 裡面有兩條連結: url https://tmp.sogo.tw/12345/報告.pdf <- 貼給人用, 讀得懂 urlEncoded https://tmp.sogo.tw/12345/%E5%A0%B1%E5%91%8A.pdf <- 程式用 🔴 **程式 (curl / 腳本 / agent) 一律用 urlEncoded.** curl 不會自己把路徑裡的 UTF-8 percent-encode, 拿 url 直接打會被擋在 Cloudflare 的 edge 回 400. 瀏覽器會自己編碼, 所以貼給人用的那條沒問題. 檔名純 ASCII 時兩條一模一樣. 三個可帶的東西: name 完整檔名含副檔名. -F 會自己從檔案帶; 另外兩種寫法用 ?name= 或標頭 X-Filename tag 用途標籤, 給人分辨這是什麼. 選填, 最多 60 字. 也可用標頭 X-Tag 🔴 標頭只吃 ASCII (HTTP 標頭是 latin-1), 中文的 tag 請用 ?tag= 或 -F "tag=..." mins 有效分鐘數. 預設 1440 (24 小時), 範圍 1~10080 (7 天). 也可用標頭 X-Expire-Mins. 看不懂的值會退回預設而不是報錯 另外兩種送法 (大檔用這兩條, 它們是串流的): curl --data-binary @檔案.ext "https://tmp.sogo.tw/1314?name=檔案.ext&tag=用途&mins=60" curl -T 檔案.ext "https://tmp.sogo.tw/1314/檔案.ext?tag=用途&mins=60" 上限: multipart (-F) 25 MB 整包要讀進記憶體, 所以壓比較低 串流 (--data-binary / -T) 100 MB 下載: https://tmp.sogo.tw/{5位數字}/{檔名} 正式網址 https://tmp.sogo.tw/{5位數字} 302 轉到上面那條 過期之後回 410. 檔案本體由每小時一次的排程從儲存體刪掉, 上傳紀錄 (時間 / IP / tag) 會留著. 機器要讀的完整定義: https://tmp.sogo.tw/api/help