![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 16.08.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam, ostatnio zostałem postawiony przed problemem ograniczenia transferu przy przesyłaniu pliku przez protokół http (NIE ftp!).
Usiłowałem znaleźć odpowiedź na to pytanie zarówno na forum jak i w internecie, niestety nie znalazłem ani śladu informacji na ten temat. Ograniczenie takie miałoby zostać narzucone przez php, a nie jakąś konfigurację serwera, albo przez program na nim zainstalowany. Mój obecny pomysł to użycie funkcji, która po przesłaniu do bufora serwera pakietu czeka z wysłaniem kolejnego 1 sekundę (gdy $delay=1).
Takie rozwiązanie na pewno działa, bo testowałem - być może ktoś jednak ma uwagi co do wydajności takiego rozwiązania (czy obsługiwanie downloadu w ten sposób na stronie z dużą ilością odwiedzin nie wykończy serwera), a także ewentualnie wysłucham pomysłów i uwag. Obecne rozwiązanie (chyba?) nie opóźnia wysyłki przy słabych łączach, gdy transfer i tak jest mniejszy niż ograniczenie. Jeśli rozwiązanie jest ok, to mam nadzieję, że komuś kto kiedyś będzie go szukał też się przyda. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 16.08.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat do małych plików, możesz bez problemu streamować natomiast większe po prostu przekieruj się headerem. A czy przypadkiem nie jest tak, że jedyna różnica między dużymi plikami a małymi to czas działania skryptu? No bo do pamięci ładowane jest tylko: $chunksize = $kb_per_s*(1024); czyli przykładowo 10 kilobajtów... Chyba, że sam fakt działania w tle kilkuset "procesów" (przy kilkuset downloadach naraz) niezależnie od tego co te procesy robią jest dużym obciążeniem... ale czy wtedy nie jest tak, że nie ma znaczenia czy to duże czy małe pliki, a jedynie ile średnio w trakcie sekundy uzytkownikow sciaga pliki (jakiekolwiek?)? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.10.2025 - 08:59 |