無名小站相簿備份服務:無名小站 Album 備份服務。
早上整個重寫,把之前那個版本的一些 bug 都解決了:
- 修正了 VIP 相簿無法下載的問題。(因為 VIP 用的是
http://pic.wretch.cc/
,而一般使用者用的是http://picN.pic.wretch.cc/
) - 修正了第一面超過 20 本相簿時,不會去抓後面的相簿。
- 修正了原圖寬度超過 800px 的圖片 (會產生兩份縮圖) 只會抓到 800px 那份。
另外這個版本是直接在 server 上抓好、用 rar 壓縮後,丟給使用者直接下載,不用像以前那樣還要抓 wget.exe 了。
不過要注意的是,這個版本只是「會動」的版本,速度其實有點慢... 不過我想應該也還好啦,如果備份的相簿中張數最多的那個 album 有五百張 (不是全部加起來五百張),抓一次大約要十五分鐘 o_o
下午會改寫成另外一種方式,理論上會比較快...
當然,依照往例,所有的程式碼都可以在 OpenSVN 上取得:Backup Project,如果您有興趣的話,可以到無名的 P_hasname 板抱怨...。
Update:剛剛已經改寫成另外一種方式了,不過好像沒快多少 :o 加減用吧 :p
Update:換 Zip,然後增加 fork()
的數量,看看會不會比較快 :o
Update:剛剛在 CPAN 裡面挖到 ParallelUserAgent,晚點來試看看好不好用 (效率...),再來決定要不要換上去。
Update:換網址,換到 http://backup.hasname.com/
,準備跟 DreamHost 申請 Disable mod_gzip 的功能。
Update:昨天不小心改爛了 (有些 code 是寫死路徑的,從 hasname.com
換 backup.hasname.com
的時候忘了一起換),剛剛把這些問題修正了。
改成主機先下載之後,
在讓使用者下載,
你站台的流量不會爆掉嗎?
今天其實一直在偷注意..:p
不會寫 perl,如果看錯您的程式的話,請見諒。
get_image_lists() 其實可以去抓「自動播放」那個 page 裡面就有所有 thumbs 的 image link
然後直接去抓大圖,404 的話,就抓小圖
這樣可以省掉不少 parse image link 的時間
我最近又在練練 python,弄了一個類似的 project
https://opensvn.csie.org/AlbumBackuper/
不過我的想法是讓使用者備份自己的所有的相簿(公開的、沒公開的、有密碼的都要),還有 title、description 也要備份。
to kenliao:DreamHost 不太可能用得完,你可以參考 pesty 寫的 DreamHost 大特價 (promo code) 又來了 這篇。
l5s:thanks,我會列入 TODO 裡面看看,不過現在的速度不是卡在抓 url 的部分,是卡在抓圖的部分,你可以到無名的 P_hasname 看我在那邊碎碎念的內容 :p
看起來,
如果繼續把站台架在家裡的ADSL上是有點瘋子的行為orz
To kenliao,
是的,除非 CPU 用量很大,不然電費/網路費加一加就不划算了。
我前幾天馬上申請一個帳戶來用,
不過沒有想像中好用@@
有沒有密技可以分享一下?
你想要什麼密技啊?
如果我DNS不在Dreamhost管理,
我要怎麼把DN給對到dreamhost上?
也就是說怎麼使用virtual host?
還有,
要把DN給Dreamhost管理,
www.***.tw
***.tw都一定要放在dreamhost上嗎?目前我看起來是這樣的
看不太懂你說的問題,如果 Domain 不在 DreamHost 上,就用 nslookup my.domain.com ns1.dreamhost.com 查就可以了,這個好像是他們的 FAQ...。
我的表達能力好像不好@@
我的意思是foo.tw的record放在台灣的dns上面.
上面sedna IN A
但是我在dreamhost上面並沒有付費去add a ip,
但是我想把東西放在dreamhost上,
並且讓他sedna.foo.tw可以access到資料,
我該如何設定?
然後我想dreamhost可以把很多個網頁放在同一台機器上,
應該是使用apache的virtual hosting功能,
所以想說我們使用者是不是可以自己去改?
ServerAdmin foo@foo.tw
DocumentRoot /home/foo/html
ServerName sedna.foo.tw
ServerAlias sedna.foo.tw
ErrorLog /var/log/sedna.foo.tw-error_log
CustomLog /var/log/sedna.foo.tw.tw-access_log common
謝謝你撥空回答:P
到 DreamHost 的 Control Panel 上面 Add New Domain,然後申請完以後等個十分鐘,再用:
nslookup my.applied.domain.com ns1.dreamhost.com
去查 DreamHost 把你的 Domain 指到哪邊,接下來就是到自己的 DNS server 上設定就可以了...我懂了...
我把它想個太複雜了orz
非常感謝