🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
2 messages
2 total messages Started by Piotrus Wed, 28 Oct 2009 09:37
Obsluga uploadu w perlu ze wznawianiem po HTTP
#51638
Author: Piotrus
Date: Wed, 28 Oct 2009 09:37
40 lines
2831 bytes
Witam,

Stanalem przed problemem wznawiania transferu plikow poprzez HTTP i
probuje to ogarnac. Wyobrazmy sobie, ze uzytkownik wgrywa 200MB i w
polowie mu przerwalo. Uprzedzam, ze rozwiazanie z FTP odpowiada z
przyczyn niezaleznych. Wiem, ze w rapidshare na koncie premium da sie
wznawiac transfery.

Po stronie klienta bedzie uruchominy jakis twardy klient np. w Javie,
ktory bedzie komunikowal sie po HTTP z serwerem (tylko i wylacznie),
np. dane beda zwracane przez XML.

Zwracam sie z prosba o przeanalizowanie scenariusza dzialania, ktory
wymyslilem i ewentualne rady/modyfikacje.

* Normalne wgranie pliku
0. Uzytkownik sie autoryzuje ustawiany jest cookies, etc.
1. Uzytkownik wykonuje POST i leci upload pliku.
2. W bazie dodawany jest wpis odnosnie tego pliku (polozenie,
wlasciciel, rozmiar).
3. Proces konczy sie. Skrypt po stronie serwera wykonuje md5
(wgrany_plik) i zapisuje te informacje obok polozenia, wlasciciela i
rozmiaru.

* Przerwane wgranie pliku
0. Uzytkownik sie autoryzuje ustawiany jest cookies, etc.
1. Uzytkownik wykonuje POST i leci upload pliku.
2. Przerywana jest transmisja.
3. Uzytkownik ponownie uruchamia klienta, odswiezana jest lista
plikow. Przy listingu plikow, ktore sa wgrane na serwerze, dla tych,
ktore nie maja md5 mozliwa jest opcja 'wznow transfer'.
4. Po kliknieciu wznow transfer uzytkownik wznawia transfer do
wskazanego pliku.

Jak obsluzyc takie wznowienie? Na pewno jestem w stanie przekazac
informacje do klienta od ktorego miejsca w pliku lokalnym powinien
zaczac wgrywac dane podczas listowania plikow.

Ma ktos pomysl jak nakreslic takie API? Czy moje zalozenia sa dobre,
czy beda problematyczne?
Re: Obsluga uploadu w perlu ze wznawianiem po HTTP
#51639
Author: Adam Osuchowski
Date: Wed, 28 Oct 2009 10:03
13 lines
1623 bytes
Piotrus wrote:
> Jak obsluzyc takie wznowienie? Na pewno jestem w stanie przekazac
> informacje do klienta od ktorego miejsca w pliku lokalnym powinien
> zaczac wgrywac dane podczas listowania plikow.

Jeżeli zapewniasz unikalność nazw lub w inny sposób jesteś jednoznacznie
zidentyfikować plik zanim wyślesz jego zawartość to myślę, że nie będzie
problemu. W najprostszej wersji, klient przed każdym uploadem powinien
się odpytywać serwera o to, jak dużo danego pliku już jest na serwerze.
W szczególności, może otrzymać wartość 0, co będzie oznaczało, że pliku
w ogóle jeszcze nie ma (nowy upload). Wówczas należy zacząć upload od
danego miejsca, a serwer powinien doklejać zawartość do istniejącego
pliku lub go utworzyć od zera.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads