歷史/射手網(wǎng)
2000年之前,到處寄生于免費(fèi)個(gè)人主頁(yè)空間的大雜燴,,有點(diǎn)像今天的Blog,。
2000年4月,啟用shooter域名,。只不過(guò),,其實(shí)最初其實(shí)是想做一個(gè)書(shū)評(píng)網(wǎng)站,。那時(shí)候我還很愛(ài)讀書(shū),網(wǎng)站名叫“書(shū)途”,。
2000年7月,,很快忍不住加入了很多自己喜愛(ài)的元素,除了DivX之外,,還有DVD封面,、DC封面、DC游戲,、漫畫(huà)的下載,。之后不久又開(kāi)始加入視頻技術(shù)制作文章和軟件。
2001年9月,,開(kāi)始加入字幕下載的部分,。主要還是從DVD上Rip下來(lái)的字幕,很多字幕翻譯質(zhì)量都不高,。此時(shí)已經(jīng)基本停止維護(hù)封面、
游戲,、
漫畫(huà)和
電影下載的部分,。
2002年,開(kāi)始出現(xiàn)自主原創(chuàng)翻譯,。在此特別向長(zhǎng)期以來(lái)翻譯和發(fā)布字幕的貢獻(xiàn)者們致敬,。
2003年7月,啟用shooter域名,。
2004年9月,,因?yàn)樯詈凸ぷ鞯脑颍瑳](méi)有足夠的精力維護(hù)文檔和軟件更新,。好在字幕的自助上傳和下載系統(tǒng)已經(jīng)穩(wěn)定,,就像終結(jié)者里面的天網(wǎng)那樣,不用人管理也可以運(yùn)行,。
2005年12月,,長(zhǎng)期積累的大量字幕和每天的海量訪問(wèn)與搜索令服務(wù)器不堪重負(fù),幾乎每天晚上都像死機(jī)一樣,。連自己也看不下去了,,終于決定進(jìn)行一次推倒重來(lái)的大改版。
2014年11月22日,,正式宣布關(guān)閉,。
財(cái)務(wù)/射手網(wǎng)
射手網(wǎng)是一個(gè)純粹的個(gè)人網(wǎng)站,因此也沒(méi)有資本更沒(méi)有運(yùn)營(yíng)經(jīng)費(fèi),。
在2006年之前,,所有服務(wù)器均是友人幫助提供,,其余網(wǎng)絡(luò)費(fèi)和運(yùn)營(yíng)經(jīng)費(fèi)由站長(zhǎng)自掏腰包。期間曾啟用海外paypal的捐款通道,,不過(guò)歷史上收到的捐款很少來(lái),。干脆取消了。
2006年改版之后,,網(wǎng)站啟用GoogleAdsense,,雖然點(diǎn)擊不高,總算開(kāi)始有些收入,,主要用于彌補(bǔ)網(wǎng)絡(luò)帶寬費(fèi)用,。未來(lái)盈余希望可以滿足添置數(shù)據(jù)庫(kù)和Web服務(wù)器的需要。
特點(diǎn)/射手網(wǎng)
射手網(wǎng)在Web服務(wù)上*特點(diǎn),,也是*困難,,就是在極度缺乏經(jīng)費(fèi)的情況下,只能靠朋友“借”服務(wù)器,。因此,,服務(wù)器配置不理想、可用的服務(wù)器少,、難以穩(wěn)定運(yùn)行,、地理位置分散、網(wǎng)絡(luò)條件參差不齊,,難以承受龐大的訪問(wèn)量負(fù)載是*困難,。
2006年改版后,射手網(wǎng)的整個(gè)系統(tǒng)將靜態(tài)Web服務(wù)器,,和其他下載服務(wù)器,、搜索數(shù)據(jù)庫(kù)、計(jì)數(shù)器模塊分開(kāi),。帶來(lái)的好處不僅是可以擴(kuò)張負(fù)載能力應(yīng)付巨量訪問(wèn)請(qǐng)求,。更有趣的是,即使其中部分服務(wù)器死機(jī),,網(wǎng)站的其他模塊仍然可以不受影響,,可以繼續(xù)訪問(wèn)和瀏覽。
文件存儲(chǔ),、hash與“安全”下載
另外一個(gè)長(zhǎng)期困擾射手網(wǎng)的問(wèn)題是,,中文、異體文件名的存儲(chǔ)障礙,。射手網(wǎng)的服務(wù)器空間都不大,,所以所有的文件常常去要分配到不同的服務(wù)器上存儲(chǔ)。這里就有個(gè)非常嚴(yán)重的問(wèn)題,每個(gè)系統(tǒng)的文件名編碼并不相同,,多數(shù)是GB2312,,但是也有ISO或BIG5或UTF-8的可能。港臺(tái)朋友上傳的字幕可能還有繁體字或異體字,,常常造成文件名存儲(chǔ)亂碼,,最終無(wú)法下載。同時(shí)由于Windows和Linux的命名規(guī)則不同,,有時(shí)候Windows下被允許的文件名,,在Linux下會(huì)完全不被接受而造成文件丟失。
為了解決這個(gè)問(wèn)題,,2006改版后的系統(tǒng),,采用了全新的文件存儲(chǔ)方式。所有的文件全都不再按原文件名存儲(chǔ),,而是使用一個(gè)*目錄+hash串碼來(lái)存儲(chǔ),。僅在收到用戶下載請(qǐng)求時(shí),根據(jù)需要移動(dòng)(Link)到
下載緩存區(qū)供下載,。這也是為什么新版的射手網(wǎng)采用hash碼下載而且下載有了時(shí)間限制,。而“安全”下載方式,就是提供一個(gè)不包含中文字符的文件名來(lái)給使用不同編碼的操作系統(tǒng)瀏覽器的人們來(lái)下載,,以免一些用戶因?yàn)槲募麃y碼而出現(xiàn)下載不到文件的情況,。有些人以為這是為了防止盜鏈,其實(shí)站長(zhǎng)才沒(méi)有必要為了這么小氣的原因花這么大力氣做一套全新的文件存儲(chǔ)系統(tǒng),。
為了應(yīng)付大量的頁(yè)面請(qǐng)求,自然需要對(duì)頁(yè)面靜態(tài)化,。改版最初,,并沒(méi)有想到用XML和Ajax。但是漸漸的,,傳統(tǒng)的靜態(tài)頁(yè)面方法展現(xiàn)弊端――哪怕是對(duì)頁(yè)面布局做一點(diǎn)微小的修改,,就要花費(fèi)大量時(shí)間重新生成幾十萬(wàn)個(gè)頁(yè)面。對(duì)于經(jīng)常要對(duì)頁(yè)面作微調(diào)的我,,實(shí)在是萬(wàn)分痛苦,。更何況服務(wù)器負(fù)載資源已經(jīng)非常緊張,每次重建網(wǎng)站的開(kāi)銷也令人無(wú)法承受,。很快,,在現(xiàn)實(shí)的壓迫下,整個(gè)系統(tǒng)轉(zhuǎn)向XML+Ajax,。
XML+Ajax的優(yōu)勢(shì)是靜態(tài)級(jí)別的負(fù)載,,做到動(dòng)態(tài)頁(yè)面的效果。使用靜態(tài)XML+Ajax之后,不夸張地說(shuō),,射手網(wǎng)的負(fù)載開(kāi)銷下降到原來(lái)的1/50-1/100,,松了一大口氣。*遺憾是瀏覽器之間對(duì)Ajax的實(shí)現(xiàn)方式總有細(xì)微的差別,,由此針對(duì)某些
瀏覽器,,帶來(lái)不少兼容問(wèn)題。LinuxFreeBSDvs.Windows
所有的射手網(wǎng)服務(wù)器里面,,沒(méi)有一臺(tái)使用Windows,,全部采用*nix架構(gòu)的服務(wù)器。未來(lái)也不會(huì)使用Windows的服務(wù)器,,因此請(qǐng)不要來(lái)Email提一些只會(huì)在Windows服務(wù)器上發(fā)生的疑問(wèn)――99.9%的病毒都是為Windows設(shè)計(jì)的,,而且Windows的病毒不能在*nix系統(tǒng)上運(yùn)行。
不知道幾時(shí)起,,病毒,、木馬、流氓軟件的門檻這么低,。有些人有點(diǎn)聰明才智,,就愛(ài)往這種事情上用。在上傳文件時(shí)夾雜病毒,、木馬,,當(dāng)真困擾了射手網(wǎng)好幾個(gè)星期。解決方式就是在服務(wù)器上加掛zip和rar支持,,檢查每個(gè)上傳文件中,,是否包含有可能帶來(lái)危險(xiǎn)的可執(zhí)行文件或病毒載體。一旦發(fā)現(xiàn),、不僅刪除文件,,同時(shí)記錄上傳IP存檔+Ban。
射手網(wǎng)是個(gè)個(gè)人網(wǎng)站,,因此不光服務(wù)器資源緊張,,而且人力資源也異常緊張――只有一個(gè)人。因此難以一一審核上傳的文件,。所以誕生了舉報(bào)系統(tǒng),。舉報(bào)系統(tǒng)的工作流程是這樣的,用戶發(fā)現(xiàn)并舉報(bào)后,,系統(tǒng)先作加權(quán)判斷,,之后再定期檢查審核,刪除或者恢復(fù),。
下載/射手網(wǎng)
文件服務(wù)器,、域名和DNS
射手網(wǎng)采用動(dòng)態(tài)分布式的文件服務(wù)。當(dāng)下載文件時(shí),瀏覽器將需要調(diào)用下列域名:
file0.shooterfile1.shooter...(
電信)
cncfile0.shootercncfile1.shooter...(網(wǎng)通)
edufile0.shooteredufile1.shooter...(教育網(wǎng))
能否正常解析這些域名至正確的IP地址,,關(guān)系著能否正常訪問(wèn)文件服務(wù)器并下載文件,。
檢查您的系統(tǒng)能否正確解析這些域名,可以使用nslookup命令,。方法是通過(guò)“開(kāi)始”菜單,,選擇“運(yùn)行...”->CMD進(jìn)入命令行模式,輸入nslookupfile0.shooter,�,?纯聪到y(tǒng)是否可以正確獲得解析IP。
如果系統(tǒng)DNS無(wú)法正確獲得IP,,也可以手動(dòng)通過(guò)修改系統(tǒng)hosts文件,,強(qiáng)行為域名指定IP。
中文文件名與“備選模式”
默認(rèn)下載模式并沒(méi)有過(guò)濾中文文件名,,而中文文件名也常常是導(dǎo)致無(wú)法正常下載文件的重要原因,。這是因?yàn)楦鱾(gè)OS、服務(wù)器和瀏覽器對(duì)網(wǎng)址URL中的中文處理方式都不同,。例如繁體系統(tǒng)可能會(huì)把中文編碼為big5傳送,,
簡(jiǎn)體系統(tǒng)則會(huì)使用gb2312,而比較新的瀏覽器可能會(huì)使用UTF-8,,有的下載工具則可能不對(duì)中文進(jìn)行url編碼,。這樣一來(lái),盡管是完全相同的中文文字,,對(duì)于傳送網(wǎng)絡(luò)請(qǐng)求來(lái)說(shuō),,卻有可能變化為4-6種不同的可能。而對(duì)服務(wù)器來(lái)說(shuō),,只能接受其中的一種,。所以,中文文件名也是導(dǎo)致無(wú)法正常下載的主要原因,。
這也就是為什么射手網(wǎng)有個(gè)“備選模式”的下載方式�,!皞溥x模式”會(huì)過(guò)濾掉文件名中的中文文字,,將“ABC中文.rar”變換為“ABC.rar”的url以供下載,這樣雖然損失了文件名中可能包含的說(shuō)明信息,,但是卻可以保證可以正常下載,。
關(guān)于報(bào)告無(wú)法跟蹤的下載問(wèn)題
時(shí)常有用戶Email來(lái)報(bào)告“某某影片”無(wú)法下載,或者“某某軟件”無(wú)法下載,。
這樣做帶來(lái)的問(wèn)題是,,同一部影片或者同一個(gè)軟件,可能同時(shí)有很多不同的版本在提供下載。如果只是含糊的報(bào)告,,我也無(wú)法找到出問(wèn)題的文件服務(wù),。因此,當(dāng)遇到無(wú)法下載時(shí),,請(qǐng)?zhí)峁┎荒芟螺d的文件ID,,或文件URL例如“shooter/file/?fileid=12345”。
什么是hash過(guò)期
射手網(wǎng)的文件下載系統(tǒng)的主要設(shè)計(jì)目的主要是為了,,可以無(wú)限擴(kuò)展至多個(gè)或許配置并不高的
服務(wù)器均衡工作,,同時(shí)又有較高的免維護(hù)性。射手網(wǎng)的服務(wù)器通常硬盤都不大,,所以下載流程大致是這樣:
1.主服務(wù)器收到下載請(qǐng)求,,針對(duì)該文件生成hash碼作為ID,同時(shí)命令文件服務(wù)器準(zhǔn)備該文件,; 2.用戶訪問(wèn)文件服務(wù)器并提供hash碼ID,; 3.文件服務(wù)器將對(duì)應(yīng)的文件調(diào)入服務(wù)器上的下載目錄,并供下載,;4.hash過(guò)期后,,將對(duì)應(yīng)文件清出文件下載目錄。
采用這樣的下載流程主要是為了在服務(wù)器空間有限的情況下,,有控制的*限度的合理利用
資源,。但是這也帶來(lái)一個(gè)附加條件,就是一個(gè)hash碼是有時(shí)限的,,如果一個(gè)hash碼的生命期已經(jīng)結(jié)束,,就會(huì)文件服務(wù)器就會(huì)提示hash碼已經(jīng)過(guò)期而不能下載,而需要重新回到網(wǎng)站請(qǐng)求文件并獲得新的下載鏈接(部分瀏覽器可能會(huì)緩存網(wǎng)頁(yè)鏈接而使用戶得到的是舊hash碼而導(dǎo)致無(wú)法下載,,此時(shí)可以通過(guò)清空瀏覽器緩存或刷新網(wǎng)頁(yè)解決),。
射手影音播放器/射手網(wǎng)
是一款
開(kāi)源的多媒體播放器,以
GNU通用公共許可證發(fā)布,。與大部分開(kāi)源媒體播放器一樣采用
FFmpeg解/編碼技術(shù),,不過(guò)與多數(shù)開(kāi)源播放器不同的是它只能運(yùn)行在 Windows 上。除了運(yùn)行于 Windows 的 SPlayer專案外,,另有正在開(kāi)發(fā)的的運(yùn)行于Mac OS X 的 SplayerX專案(改建于
MPlayerX)
[1]
正式關(guān)閉/射手網(wǎng)
2014年11月22日,,射手網(wǎng)站長(zhǎng)沈晟在公告中稱“我所希望射手網(wǎng)所具有的價(jià)值,就是能令更多人跨越國(guó)家的樊籬,,了解世界上不同的文化,。如果這個(gè)網(wǎng)站有幫到人,我就已經(jīng)很滿足了,。但是,,需要射手網(wǎng)的時(shí)代已經(jīng)走開(kāi)了,。因此,今天,,射手網(wǎng)正式關(guān)閉,。