Saturday, September 11, 2010

HFS Alternative on Linux

很久以前在用Windows的時候,有一個小程式叫HFS (HTTP File Server)蠻好用的,可以馬上開一個小小的web server來share某一個檔案/目錄。後來換到Linux上之後比較少有這種需求,大部份都是開FTP Server or NFS就行了,不過總是覺得蠻麻煩的;剛剛稍微研究了一下,發現只要靠python就全搞定了XD...

在.bashrc裡加一行:

alias webshare='python -c "import SimpleHTTPServer; SimpleHTTPServer.test();"'


然後隨便在任何目錄下只要打webshare,就可以馬上把那個目錄分享出去啦!!

而另外一端要抓東西就可以透過browser或是直接wget...舉個例子來說,假設我要把整個目錄拷貝過去:

wget -r -nH --restrict-file-names=nocontrol [url]


這邊的-nH是要wget不要再建立"IP:PORT"的目錄,而--restrict-file-names=nocontrol則是為了確保兩邊filename encoding相同(如果都是Ubuntu就可以,一邊Ubuntu一邊Windows應該會出事.因為兩邊檔案系統的filename encoding應該不一樣)

那如果要像flashget那樣同時有多個session同時下載怎麼辦? 基本上wget沒辦法做到同一個檔案多個http session下載;但是如果是很多檔案在一個目錄下,倒是有人提出了一個work-around

wget -r -np -N [url] &
wget -r -np -N [url] &
wget -r -np -N [url] &
wget -r -np -N [url] &


這邊的-N是重點,簡單說就是wget會比較是否檔案已經存在在檔案系統上,如果是的話就跳過他;所以這樣一來這四個wget的instance就會某種程度上"合作"下載所有的檔案...

0 Comments: