如何將使用者配額頻寬限制為 10Gb/天
我一直試圖弄清楚這一點:
我正在使用 PHP 創建一個文件託管站點,我想知道如何將使用者限制為每天 10Gb 的頻寬,以便他們可以下載 - 就像 RapidShare 一樣,直到他們的會話過期。然後,它們將被退回 25Gb。
我可以使用什麼類型的上限來監控他們下載(包括恢復)文件的會話?
我知道我必須對塊數據或完成的總塊做一些事情,然後我可以計算它們的總塊。
您可以將使用者的會話 ID 與他們下載的大量數據一起儲存在數據庫中。每次他們下載文件時,檢查他們的
current_usage + size_of_file < 100mb
. 如果是,請允許下載,否則會顯示錯誤。每天重置每個人current_usage
的0
。
如果你想創建一個有這樣限制的文件託管站點,我想你需要一個特定的 PHP 腳本來提供要下載的文件,就像 incrediman 說的那樣。如果你對 PHP 和 Web 開發不是太陌生,我鼓勵你也看看這篇文章:http: //onlamp.com/pub/a/php/2000/09/15/php_mysql.html
然而,最終的中心思想是最終使用者將始終訪問相同的腳本(假設您將其命名為“download.php”),並且您將使用查詢字元串之類的東西來動態選擇所提供的內容。因此,要下載類似“lenna.jpg”的文件,他們會訪問類似於“www.yoursite.ex/download.php?file=lenna.jpg”的 URL。
因為這樣做,您將在一個地方/腳本集中下載(這稱為資訊專家模式/原則),您還可以在一個中心位置記錄使用者在會話期間下載了多少(PHP 內置支持簡單的會話資訊…請參閱http://php.net/manual/en/features.sessions.php)和一個中心位置,一旦下載足夠,就可以阻止它們。