檔案下載上傳小工具

janbar發表於2021-01-23

前言

雖然現在檔案上傳下載工具多如牛毛,比如http、ftp、sftp、scp等方案都可以用於檔案傳輸,但都是需要安裝伺服器甚至客戶端。
有一種場景是我只需要臨時上傳或下載一個檔案,完了就不用伺服器執行了,如果使用那些檔案傳輸工具,不光安裝麻煩,開啟關閉也惱火額。
因此才想搞小工具,不過Python愛好者可以用python -m http.server 8080 --bind 192.168.1.100開啟檔案伺服器,對我來說還是麻煩。
已經上傳到【Github】,隨意鑑賞。

原始碼鑑賞

可以使用url訪問,會顯示一個建議web頁面,可以在這個web頁面上傳下載檔案,以及進行檔案的排序。
也可以使用wget或curl命令列工具上傳下載檔案,多種選擇,總有一個是你想要的方式。
增加祕鑰選項,使用後上傳下載傳輸的資料全都加密,且祕鑰每次都隨機,有crc和時間戳校驗,安全性極高。
使用加密選項時,無法通過web展示目錄頁面(前端加密程式碼不想寫),可通過本程式命令列實現加密上傳下載。
本工具作為客戶端時可以實現斷點上傳或斷點下載。提示裡面有伺服器和客戶端命令列,可以參考。
成功執行後會顯示幫助命令,可以複製改改就能用,非常方便。
2021-01-23號更新了一下,可以執行.\UpDownFile.exe -reg -s 127.0.0.1:8080在同級目錄下產生addRightClickRegistry.reg的登錄檔檔案。
通過雙擊登錄檔檔案可以將本程式加入右鍵選單,從此需要對某個目錄建立臨時檔案服務,只需要在對應目錄右鍵點一下下。Linux命令列可比window好辦多了。

並且增加了上傳下載檔案完成後展示檔案的md5值,這樣可以確保傳輸的檔案是否有損壞。

食用方法

執行UpDownFile -h可以檢視幫助文件,執行UpDownFile cli -h可以檢視客戶端幫助文件。
不使用加密方式,可以通過web頁面檢視伺服器的目錄,可以對目錄排序,點選檔案可以下載,點選目錄可進入。
工具雖小,但確實解決了我個人的臨時上傳下載檔案需求,再也不用到處安裝各種伺服器咯,爽爽噠。

UpDownFile.exe -s 127.0.0.1:8080 -p C:\dir -e password
dir [C:\dir],url [http://127.0.0.1:8080/]

server:
    UpDownFile.exe -s 127.0.0.1:8080 -p C:\dir -e password
cli get:
    UpDownFile.exe cli -u "http://127.0.0.1:8080/dir/tmp.txt" -c -e password
cli post:
    UpDownFile.exe cli -d @C:\tmp.txt -u "http://127.0.0.1:8080/dir/tmp.txt" -c -e password

GET file:
    wget -c --content-disposition "http://127.0.0.1:8080/dir/tmp.txt"
    curl -C - -OJ "http://127.0.0.1:8080/dir/tmp.txt"
POST file:
    wget -qO - --post-file=C:\tmp.txt "http://127.0.0.1:8080/dir/tmp.txt"
    curl --data-binary @C:\tmp.txt "http://127.0.0.1:8080/dir/tmp.txt"
    curl -F "file=@C:\tmp.txt" "http://127.0.0.1:8080/dir/"

相關文章