Streaming (?) pliku - pobieranie przez pośrednika

Odpowiedz Nowy wątek
2011-08-02 20:30
0

Witam,
mam na chwilę obecną 15 plików (rar) z danymi, które są udostępniane użytkownikom, po spełnieniu określonych warunków. Na chwilę obecną, user może zalogować się do panelu, wybrać odpowiedni plik i rozpocząć pobieranie. Jest ono realizowane przez skrypt i nagłówki, skrypt typu download.php?id=numer_pliku. Dzięki temu otrzymuję info ile razy został pobrany plik, oraz przez kogo.

Miejsca na serwerze nie mam za wiele, za to transferu pod dostatkiem. Jako, że pliczki są sporawych rozmiarów (+/- 350MB), chciałbym je przerzucić na inny serwer, żeby sobie leżały, i puszczać cały transfer przez dotychczasowy serwer.

Dlaczego nie przeniosę się całkowicie na drugi serwer ? Otóż są na nim pewne ograniczenia, które powodują, że staje się on idealny dla hostowania pliczków (dość duża pojemność, transfer jak dla moich potrzeb ok, i za darmo - jak dla mnie).

Poczytałem trochę szczątkowych informacji nt. wprowadzenia pośrednika, między użytkownika a serwer z plikami. Nie mniej jednak nie wiem jak się do tego zabrać.

Domyślam się, że należy postąpić mniej więcej następująco :
a) user klika link
b) POST'em do serwera A -> ten z kolei łączy się z serwerem B i rozpoczyna pobieranie pliku cząstkami
c) każda odebrana cząstka jest natychmiastowo wysyłana do przeglądarki użytkownika, jednocześnie jest kasowana z pamięci serwera A

Ktoś mógłby pomóc ? Dać jakiś link ? Kod ? Cokolwiek ?

Daj szczątkowe logowanie na ten drugi server i sprzęż je z logowaniem na głównym, wtedy możesz zarzucić zwykłe przekierowanie na adres drugiego. Da radę takie cuś? I lepiej weź jakiegoś zipa bo rar sprawia ludziom problemy, pomijając fanatycznych wrogów tego spaczonego kapitalistycznego formatu są jeszcze ludziska które nie mają pojęcia co to archiwizer. Chyba że operujesz na jakiejś zamkniętej społeczności gdzie taka wiedza jest czymś pewnym. - O_o 2011-08-02 20:43

Pozostało 580 znaków

2011-08-06 10:45
0

no niestety nie da rady coś takiego, stąd też potrzebuję streamingu pliku :/ Ma ktoś jakieś info ?

//
wymodziłem coś takiego :

function download($link)
{
    $curl = curl_init();
    $bytes = rozmiar($link);
    curl_setopt($curl, CURLOPT_URL, $link);
    curl_setopt($curl, CURLOPT_NOBODY, false);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false);
 
        header('HTTP/1.1 206 Partial Content');
        header('Content-type: application/x-rar');
        header("Content-Type: application/octet-stream");
        header('Content-Disposition: attachment; filename="' . basename($link) . '"'); 
        header("Content-Length: ".$bytes.";\n");
        header('Accept-Ranges: bytes');
    $req = curl_exec($curl);
    curl_close($curl);
    exit();
}

Niestety, przy próbie pobrania pliku pobiera tylko 20B :/

edytowany 1x, ostatnio: mr.hex, 2011-08-06 10:59

Pozostało 580 znaków

2011-08-08 21:13
0

anyone ?? mój problem jest identyczny jak w : http://4programmers.net/Forum/PHP/184170-posrednik_w_pobieraniupliku-_ukrywanie_prawdziwego_ip_pobierajacego

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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