射手網
網站
射手網是一個以電影中文字幕為主的主題資訊交換平台。射手網不是以盈利為目的,也未與任何盈利性組織有任何關係。射手網只是供一些自願翻譯人存儲和交流的平台。
2014年11月22日,射手網站長沈晟宣布,射手網正式關閉。
2014年12月17日,國家版權局公布射手網關停。
射手網
2000年4月,啟用.cn域名。只不過,其實最初其實是想做一個書評網站。那時候我還很愛讀書,網站名叫“書途”。
2000年7月,很快忍不住加入了很多自己喜愛的元素,除了DivX之外,還有DVD封面、DC封面、DC遊戲、漫畫的下載。之後不久又開始加入視頻技術製作文章和軟體。
2001年9月,開始加入字幕下載的部分。主要還是從DVD上Rip下來的字幕,很多字幕翻譯質量都不高。此時已經基本停止維護封面、遊戲、漫畫和電影下載的部分。
2002年,開始出現自主原創翻譯。在此特別向長期以來翻譯和發布字幕的貢獻者們致敬。
2003年7月,啟用新域名。
2004年9月,因為生活和工作的原因,沒有足夠的精力維護文檔和軟體更新。好在字幕的自助上傳和下載系統已經穩定,就像終結者裡面的天網那樣,不用人管理也可以運行。
2005年12月,長期積累的大量字幕和每天的海量訪問與搜索令伺服器不堪重負,幾乎每天晚上都像死機一樣。連自己也看不下去了,終於決定進行一次推倒重來的大改版。
2014年11月22日,正式宣布關閉。
射手網是一個純粹的個人網站,因此也沒有資本更沒有運營經費。
在2006年之前,所有伺服器均是友人幫助提供,其餘網路費和運營經費由站長自掏腰包。期間曾啟用海外paypal的捐款通道,不過歷史上收到的捐款,一隻巴掌就數得過來。乾脆取消了。
2006年改版之後,網站啟用GoogleAdsense,雖然點擊不高,總算開始有些收入,主要用於彌補網路帶寬費用。未來盈餘希望可以滿足添置資料庫和Web伺服器的需要。負載均衡 射手網在Web服務上最大的特點,也是最大的困難,就是在極度缺乏經費的情況下,只能靠朋友“借”伺服器。因此,伺服器配置不理想、可用的伺服器少、難以穩定運行、地理位置分散、網路條件參差不齊,難以承受龐大的訪問量負載是最大的困難。
2006年改版后,射手網的整個系統將靜態Web伺服器,和其他下載伺服器、搜索資料庫、計數器模塊分開。帶來的好處不僅是可以擴張負載能力應付巨量訪問請求。更有趣的是,即使其中部分伺服器死機,網站的其他模塊仍然可以不受影響,可以繼續訪問和瀏覽。文件存儲、hash與“安全”下載 另外一個長期困擾射手網的問題是,中文、異體文件名的存儲障礙。射手網的伺服器空間都不大,所以所有的文件常常去要分配到不同的伺服器上存儲。這裡就有個非常嚴重的問題,每個系統的文件名編碼並不相同,多數是GB2312,但是也有ISO或BIG5或UTF-8的可能。港台朋友上傳的字幕可能還有繁體字或異體字,常常造成文件名存儲亂碼,最終無法下載。同時由於Windows和Linux的命名規則不同,有時候Windows下被允許的文件名,在Linux下會完全不被接受而造成文件丟失。
為了解決這個問題,2006改版后的系統,採用了全新的文件存儲方式。所有的文件全都不再按原文件名存儲,而是使用一個唯一的目錄+hash串碼來存儲。僅在收到用戶下載請求時,根據需要移動(Link)到下載緩存區供下載。這也是為什麼新版的射手網採用hash碼下載而且下載有了時間限制。而“安全”下載方式,就是提供一個不包含中文字元的文件名來給使用不同編碼的操作系統瀏覽器的人們來下載,以免一些用戶因為文件名亂碼而出現下載不到文件的情況。有些人以為這是為了防止盜鏈,其實站長才沒有必要為了這麼小氣的原因花這麼大力氣做一套全新的文件存儲系統。頁面靜態化、XML和Ajax 為了應付大量的頁面請求,自然需要對頁面靜態化。改版最初,並沒有想到用XML和Ajax。但是漸漸的,傳統的靜態頁面方法展現弊端——哪怕是對頁面布局做一點微小的修改,就要花費大量時間重新生成幾十萬個頁面。對於經常要對頁面作微調的我,實在是萬分痛苦。更何況伺服器負載資源已經非常緊張,每次重建網站的開銷也令人無法承受。很快,在現實的壓迫下,整個系統轉向XML+Ajax。
XML+Ajax的優勢是靜態級別的負載,做到動態頁面的效果。使用靜態XML+Ajax之後,不誇張地說,射手網的負載開銷下降到原來的1/50-1/100,鬆了一大口氣。唯一的遺憾是瀏覽器之間對Ajax的實現方式總有細微的差別,由此針對某些瀏覽器,帶來不少兼容問題。 Linux\FreeBSD vs. Windows 所有的射手網伺服器裡面,沒有一台使用Windows,全部採用*nix架構的伺服器。未來也不會使用Windows的伺服器,因此請不要來Email提一些只會在Windows伺服器上發生的疑問——99.9%的病毒都是為Windows設計的,而且Windows的病毒不能在*nix系統上運行。文件上傳過濾系統 不知道幾時起,病毒、木馬、流氓軟體的門檻這麼低。有些人有點聰明才智,就愛往這種事情上用。在上傳文件時夾雜病毒、木馬,當真困擾了射手網好幾個星期。解決方式就是在伺服器上加掛zip和rar支持,檢查每個上傳文件中,是否包含有可能帶來危險的可執行文件或病毒載體。一旦發現、不僅刪除文件,同時記錄上傳IP存檔+Ban。舉報系統 射手網是個個人網站,因此不光伺服器資源緊張,而且人力資源也異常緊張——只有一個人。因此難以一一審核上傳的文件。所以誕生了舉報系統。舉報系統的工作流程是這樣的,用戶發現並舉報后,系統先作加權判斷,之後再定期檢查審核,刪除或者恢復。
文件伺服器、域名和DNS
射手網採用動態分散式的文件服務。當下載文件時,瀏覽器將需要調用下列域名:
file0.shooter.cn file1.shooter.cn ... (電信)
cncfile0.shooter.cn cncfile1.shooter.cn ... (網通)
edufile0.shooter.cn edufile1.shooter.cn ... (教育網)
能否正常解析這些域名至正確的IP地址,關係著能否正常訪問文件伺服器並下載文件。
檢查您的系統能否正確解析這些域名,可以使用nslookup命令。方法是通過“開始”菜單,選擇“運行...” ->CMD 進入命令行模式,輸入 nslookup file0.shooter.cn。看看系統是否可以正確獲得解析IP。
如果系統DNS無法正確獲得IP,也可以手動通過修改系統hosts文件,強行為域名指定IP。
中文文件名與“備選模式”
默認下載模式並沒有過濾中文文件名,而中文文件名也常常是導致無法正常下載文件的重要原因。這是因為各個OS、伺服器和瀏覽器對網址URL中的中文處理方式都不同。例如繁體系統可能會把中文編碼為big5傳送,簡體系統則會使用gb2312,而比較新的瀏覽器可能會使用UTF-8,有的下載工具則可能不對中文進行url編碼。這樣一來,儘管是完全相同的中文文字,對於傳送網路請求來說,卻有可能變化為4-6種不同的可能。而對伺服器來說,只能接受其中的一種。所以,中文文件名也是導致無法正常下載的主要原因。
這也就是為什麼射手網有個“備選模式”的下載方式。“備選模式”會過濾掉文件名中的中文文字,將“ABC中文.rar”變換為“ABC.rar”的url以供下載,這樣雖然損失了文件名中可能包含的說明信息,但是卻可以保證可以正常下載。
關於報告無法跟蹤的下載問題
時常有用戶Email來報告“某某影片”無法下載,或者“某某軟體”無法下載。
這樣做帶來的問題是,同一部影片或者同一個軟體,可能同時有很多不同的版本在提供下載。如果只是含糊的報告,我也無法找到出問題的文件服務。因此,當遇到無法下載時,請提供不能下載的文件ID,或文件URL例如“http://shooter.cn/file/?fileid=12345”。
什麼是hash過期
射手網的文件下載系統的主要設計目的主要是為了,可以無限擴展至多個或許配置並不高的伺服器均衡工作,同時又有較高的免維護性。
射手網的伺服器通常硬碟都不大,所以下載流程大致是這樣:1. 主伺服器收到下載請求,針對該文件生成hash碼作為ID,同時命令文件伺服器準備該文件;2. 用戶訪問文件伺服器並提供hash碼ID;3. 文件伺服器將對應的文件調入伺服器上的下載目錄,並供下載;4. hash過期后,將對應文件清出文件下載目錄。
採用這樣的下載流程主要是為了在伺服器空間有限的情況下,有控制的最大限度的合理利用資源。但是這也帶來一個附加條件,就是一個hash碼是有時限的,如果一個hash碼的生命期已經結束,就會文件伺服器就會提示hash碼已經過期而不能下載,而需要重新回到網站請求文件並獲得新的下載鏈接(部分瀏覽器可能會緩存網頁鏈接而使用戶得到的是舊hash碼而導致無法下載,此時可以通過清空瀏覽器緩存或刷新網頁解決)。
正式關閉
2014年11月22日,射手網站長沈晟在公告中稱“我所希望射手網所具有的價值,就是能令更多人跨越國家的樊籬,了解世界上不同的文化。如果這個網站有幫到人,我就已經很滿足了。但是,需要射手網的時代已經走開了。因此,今天,射手網正式關閉。”
2014年12月17日,國家版權局公布射手網關停。