System downloadu

0

Piczę skrypt który ma na celu pobieranie plików, pliki te mają być pobierane kolejno po dodaniu ich X ilości, nawet jeśli użytkownik włączy pobieranie i wyłączy przeglądarkę to serwer dalej powinien pobierać, jednocześnie chciał bym mieć możliwość sprawdzenia postępu pobierania, aby móc wyświetlić pasek postępu, nawet tak jak wspomniałem wcześniej po wyłączeniu i ponownym włączeniu przeglądarki.

Niestety nie mam pojęcia w jaki sposób mógł bym to zrobić, myślałem o http://php.net/manual/en/book.pthreads.php ale zrezygnowałem przed jakimikolwiek testami z powodu, że nie wszystkie hostingi (chodzi mi tu głównie o te darmowe) dadzą możliwość ich używania.

Będę wdzięczny za jakąkolwiek pomoc lub chociaż wskazanie dobrym kierunku :)

0

Zapomniałem wspomnieć, że pobierane pliki będą zapisywane na serwerze, niby jak mogło by być inaczej skoro ma kontynuować po wyłączeniu przeglądarki, ale wole dodać aby nie było nieścisłości :)

0
  1. Jeżeli chcesz robić jakieś serwisy z pobieraniem to Cię zawiodę - podziała to maks 6 godzin, potem dostaniesz bana
  2. Takie rozwiązania wymagałyby czegokolwiek PONAD zwykły hosting (nawet płatny), jakiś VPS na przykład.

Logika tego jest w miarę prosta:
Robisz bazę danych z kolejką plików do pobrania i jakimś hashem. Gdy ktoś doda link, to dodajesz do bazy tę informację i przy pomocy exec uruchamiasz na serwerze wget który pobierze Ci ten plik. Wcześniej w bazie zapisujesz rozmiar pobieranego pliku. Robisz sobie też skrypt, który po podaniu hashu sprawdza rozmiar pobieranego pliku (którego nazwa powinna być tym hashem) i porównujesz z zapisanym rozmiarem, aby śledzić postęp. Takie coś odświeżasz ajaxem co kilka sekund. Do tego dochodzi jeszcze automatyczne uruchomienie przerwanych procesów w razie gdyby serwer został wyłączony - wtedy po jego uruchomieniu wywołujesz skrypt, który sprawdza nieukończone pliki i znowu uruchamia kolejne wget-y pobierające tym razem od określonego punktu dany plik.

A jeżeli chcesz włączyć w to serwisy do pobierania plików to będzie troszkę trudniej, bo takie rzeczy mogą być różne dla różnych serwisów.

PS. Jak masz 15 lat i chcesz serwisem na darmowym hostingu zdobyć świat to po prostu odpuść :)

0

Myślałem nad podobnym rozwiązaniem ale nie było by możliwości wstrzymania pobierania, więc to raczej odpada, chyba że się mylę :P

PS.
Nie planuję tworzyć żadnego serwisu więc zawieść się nie zawiodłem, projektuje tą stronę tylko i wyłącznie w celu dokształcenia, a jeśli chodzi o tego 15-latka to akurat radzenie dzieciom "odpuszczenia" sobie jest niezbyt mądre, choć by miał nie skończyć projektu, czy myśleć, że jego strona będzie lepsza i popularniejsza od facebook-a to właśnie to może pomóc mu w rozwoju, bo "nie od razu Rzym zbudowano" do wszystkiego trzeba dojść krok po kroku (a w przypadku dziecka płatny hosting/domena na pewno nie jest w zasięgu ręki). :)

0

DOKŁADNIE. Krok po kroku, a nie rzucać się na serwisy (tj. robienie takowych), które z założeń mają być spore ;) Co jakiś czas wpadają tutaj myśliciele, którzy będą tworzyć gry przeglądarkowe i inne cuda na kiju, jednocześnie nie potrafiąc nic, albo tyle, żeby kalkulator napisać - chciałem z góry powiadomić, że to rzucanie się na wodę.

Wstrzymać pobieranie by się dało - np. wget odpalasz poprzez screen-a z nazwą jako hash. Potem w przypadku żądania wstrzymania - ubijasz screena o tej nazwie.

0

Ogólnie założenie rozumiem ale mógł byś podać jakiś przykład, bo ja nie w tym temacie a screen to zbyt popularne słowo abym mógł coś łatwo znaleźć ;p

No i odbiegając od tego sposobu co myślisz o wykorzystaniu funkcji ignore_user_abort, był by to większy problem dla serwera (w sensie obciążenia go)?
Chodzi tu głównie o odpalenie skryptu który by pobierał dany plik, jednocześnie np w bazie danych dodać pole które odpowiadało by za wyłączenie tego skryptu (to co mnie tu martwi to to, że skrypt musiał by dość często pobierać zawartość tego pola).

0

man screen ;) albo "screen linux" w google. nie brakuje materiałów, popularność słowa nie przeszkadza ;)

0

Kiedy jesteś zapoznany z tematem to tak, nie przeszkadza bo znasz zagadnienia z tym związane i wiesz co możesz wpisać, ja jedyne co mogłem to wget i screen (co nie dawało mi zbyt wiele) ;]
Jutro poczytam o tym bo dziś już trochę późno i idę spać ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1