酷!學園

技術討論區 => 網頁技術 => 主題作者是: wilson 於 2003-08-18 01:01

主題: 限制一次下載兩個
作者: wilson2003-08-18 01:01
請問~~有辦法做到限制同一個來源只能一同時下載兩個檔案嗎??
就是說~~如果我有十個檔案要下載~~我只能一次下載兩個~~
正在下載那兩個中的任何一個下載完了之後~~才能再下載第三個~~
謝謝
主題: 限制一次下載兩個
作者: reggie2003-08-18 01:16
寫script判斷netstat -a   ?
主題: 限制一次下載兩個
作者: wilson2003-08-18 01:32
~~~感謝回應~~
忘記說了~~我是指透過80 port下載~~
除了netstat之外~~不知還有沒有其他方法??
主題: 限制一次下載兩個
作者: ozakipw2003-08-18 09:02
找一下bandwidth module 應該有您要的功能!!
http://modules.apache.org
主題: 限制一次下載兩個
作者: wilson2003-08-18 09:51
嗯~~謝謝
我去看看~~ :P
主題: 限制一次下載兩個
作者: ozakipw2003-08-18 10:30
記得跟大夥說一下結果喔...
我正在煩惱如何把apache 2.x換成1.3.x

引述: "wilson"
嗯~~謝謝
我去看看~~ :P
主題: 限制一次下載兩個
作者: paulso2003-08-18 12:05
可以以 upgrade 的方法來降 grade 嗎?
又或者... uninstall => install
主題: 限制一次下載兩個
作者: wilson2003-08-18 13:19
引述: "paulso"
可以以 upgrade 的方法來降 grade 嗎?
又或者... uninstall => install


不好意思
請問paulso兄~~這是什麼??
主題: 限制一次下載兩個
作者: wilson2003-08-18 13:20
引述: "ozakipw"
記得跟大夥說一下結果喔...
我正在煩惱如何把apache 2.x換成1.3.x


嗯~~看完再和大家討論   :P   謝謝
主題: 限制一次下載兩個
作者: paulso2003-08-18 20:46
引述: "wilson"
引述: "paulso"
可以以 upgrade 的方法來降 grade 嗎?
又或者... uninstall => install


不好意思
請問paulso兄~~這是什麼??

2.x => 1.x.x
主題: 限制一次下載兩個
作者: wilson2003-08-18 21:06
引述: "paulso"
引述: "wilson"
引述: "paulso"
可以以 upgrade 的方法來降 grade 嗎?
又或者... uninstall => install


不好意思
請問paulso兄~~這是什麼??

2.x => 1.x.x


喔~~了解~~ :D
主題: 限制一次下載兩個
作者: ozakipw2003-08-19 22:26
最後小弟利用/usr/local/在裝一套apache....1.3.27起來跑8080 port...
主題: 限制一次下載兩個
作者: wilson2003-09-09 01:13
引述: "ozakipw"
找一下bandwidth module 應該有您要的功能!!
http://modules.apache.org


嗯~~因為之前沒時間用~~這幾天才繼續用
但是發現這個模組好像也達不到我的要求呢~~
我是要限制每各IP只能連一線  
還是我不會用??(我有看完document阿)

暫時先用程式做了
主題: 限制一次下載兩個
作者: kayung2003-09-09 11:30
可以把你用程式的作法分享出來嗎,謝謝
我這邊提供一下我的方法,實作過沒問題,應該可以達到你的需求
如果有錯請各位學長指教。

rpm -qa |grep mod_bandwidth
確定mod_bandwidth有安裝
編輯 /etc/httpd/conf/httpd.conf
把以下兩個注解拿掉
LoadModule bandwidth_module   modules/mod_bandwidth.so
AddModule mod_bandwidth.c
加上
BandWidthModule On
設目錄流量和最大連線數
<Directory "/var/www/html">
         MaxConnection 4
         BandWidth 172.18.88 30000
         BandWidth 172.18.22 0
         BandWidth all 10240
</Directory>
限定來自172.18.88.0/24 的流量只有30kbyte/sec
172.18.22.0/24 的沒限制流量,其餘的限制10k的流量
MaxConnection代表同時只能下載檔案個數
4為兩個、5為三個………….

在 /tmp下creat一個apachebw的目錄
#mkdir –p /tmp/apachebw/link
#mkdir /tmp/apachebw/master
#chown apache:apache /tmp/apachebw –R
要有MaxConnection 的功能需去ftp://ftp.cohprog.com/pub/apache/module/1.3.0/
下載最新的mod_bandwidth.c回來裝上去
#apxs -c /path/mod_bandwidth.c -o /usr/lib/apache/mod_bandwidth.so
#service httpd restart

參考網站http://www.cohprog.com/v3/bandwidth/doc-en.html
主題: 限制一次下載兩個
作者: wilson2003-09-09 13:30
引述: "kayung"
BandWidthModule On
設目錄流量和最大連線數
<Directory "/var/www/html">
         MaxConnection 4
         BandWidth 172.18.88 30000
         BandWidth 172.18.22 0
         BandWidth all 10240
</Directory>


嗯~~感謝您的分享~~
不過上面這些設定~~似乎達不到我的需求
(我要限的是最大連線數  且是by IP來限制 不是by Dir 就像proftpd的Maxclient及Maxhost一樣)
你上面這樣的設定應該是:
在/var/www/html 這目錄下的東西(包含子目錄)最大連線數只能同時有四個
不管來自那邊的IP都一樣~~反正加起來超過四個後~~第五個就不能連了
而下面的Mandwith那邊是可以by IP沒錯~~不過似乎是以”總量”來限
也就是說在這目錄下的下載量加起來只可達你所限的量
以上是我之前的測試結果

至於程式  現在打算用PHP來做~~還沒寫好  測試當中
主題: 限制一次下載兩個
作者: ozakipw2003-09-11 17:03
php寫好可否教導一下...Thanks
主題: 限制一次下載兩個
作者: wilson2003-09-11 20:11
引述: "ozakipw"
php寫好可否教導一下...Thanks


嗯~~~程式這幾天已經寫好~~測試過了~~可正常執行並達到我的需求
(我的需求已改為同一個user同時只能一次下載一個)
關鍵在於
http://tw2.php.net/manual/en/features.connection-handling.php
你可以參考看看
主題: 限制一次下載兩個
作者: ozakipw2003-09-30 11:17
失敗了~~~
請問wilson 是否可將該程式email給小弟參考??
ozakipw@yahoo.com.tw
感謝~
主題: 限制一次下載兩個
作者: wilson2003-09-30 14:16
嗯~~不如把你的程式貼出來看看~~相信版上的學長們會幫你看看那邊有問題的
貼出來大家才知道你的問題在那
主題: 限制一次下載兩個
作者: peiga2003-09-30 16:59
重點是不是在:
引用
To prevent a double click of the submit button, you can disable it with javascript or in your script you can set a flag for that order, which will be recorded into the database. Before accept a new submission, the script will check if the same order was not placed before and reject it. This will work fine, as the script have finished the job before.


是不是在ignore_user_abort(true)之後
if (connection_abort()) 不行下載
else 可以下載

或是還在再搭配set_time_limit()????

請指點指點~~
謝謝~~
:-3
主題: 限制一次下載兩個
作者: wilson2003-09-30 20:18
或許有其它做法~~而我的做法是將使用者的狀態記錄在資料庫裡
由資料庫狀態去判斷給不給下載
而這之間要克服的當然就是”如果使用者斷線呢?!”
也就是說要做到不管user是正常下載完或者是斷線
我們都要知道

程式沒幾行~~只要了解
1.Connection handling
2.register_shutdown_function()
這樣就沒問題了  http://tw2.php.net/manual/en/features.connection-handling.php