Tetszett. Két kérdés merült fel bennem (pusztán érdeklődés szintjén):
Miben különbözik a streaming és a range támogatott download?
Ezzel kapcsolatosan: lehet olyan letöltést is csinálni, amikor ismeretlen a fájlméret; jól láttam, hogy ilyenről nem szólt a cikk?
Miben különbözik a streaming és a range támogatott download?
Nem biztos, hogy jó a válasz, de szerintem abban, hogy a range folytatható. A range header-ben el lehet küldeni, hogy mettől meddig szeretnéd leszedni a tartalmat, és ez nem feltétlen csak fájlokra vonatkozik, pl listáknál is meg lehet csinálni ugyanígy... Gondolom a resumable download abban különbözik a normáltól, hogy a php figyelembe veszi a küldött range header-t, illetve ő maga is küld vissza ilyet.
Ezzel kapcsolatosan: lehet olyan letöltést is csinálni, amikor ismeretlen a fájlméret; jól láttam, hogy ilyenről nem szólt a cikk?
Elméletben lehetséges, gondolom akkor, ha nem küldesz ki content length-et. (Elvileg gzip, deflate, stb... szintén zavarják a content length-et, úgyhogy oda speciális kód kell.) Gyakorlatban nem látom értelmét az ismeretlen méretnek, rontja a felhasználói élményt.
Úgy nézem, hogy x-sendfile + gzip + range együtt még nem feltétlen megoldott http szerver szinten, úgyhogy alternatíva nem nagyon van védett fájlok esetén. (Publikus fájloknál valószínűbb, hogy működik a range és a gzip együtt a http szerveren.)
A gzipnek leginkabb a szoveges allomanyoknal van ertelme.
Kis fajloknal tok mindegy a range.
Nagy fajlok tipikusan nagyon rosszul tomorithetoek, mert eleve tomoritettek.
Innentol kezdve tenyleg folosleges ezen erolkodni. Profi modon egyebkent ugy oldjak meg, hogy a download-okat biztosito szerver ad egy download ticketet (URL-t) amin letoltheto a file es nem PHP-bol szolgalod ki a fajlokat.
Tetszett
Miben különbözik a streaming és a range támogatott download?
Ezzel kapcsolatosan: lehet olyan letöltést is csinálni, amikor ismeretlen a fájlméret; jól láttam, hogy ilyenről nem szólt a cikk?
Miben különbözik a streaming
Nem biztos, hogy jó a válasz, de szerintem abban, hogy a range folytatható. A range header-ben el lehet küldeni, hogy mettől meddig szeretnéd leszedni a tartalmat, és ez nem feltétlen csak fájlokra vonatkozik, pl listáknál is meg lehet csinálni ugyanígy... Gondolom a resumable download abban különbözik a normáltól, hogy a php figyelembe veszi a küldött range header-t, illetve ő maga is küld vissza ilyet.
Elméletben lehetséges, gondolom akkor, ha nem küldesz ki content length-et. (Elvileg gzip, deflate, stb... szintén zavarják a content length-et, úgyhogy oda speciális kód kell.) Gyakorlatban nem látom értelmét az ismeretlen méretnek, rontja a felhasználói élményt.
Elvileg gzip, deflate, stb...
Nem tudom, hogy itt mire gondolsz. A
Content-Length
a tömörített válasz hossza.Igen, de ha php-val akarsz
Úgy nézem, hogy x-sendfile + gzip + range együtt még nem feltétlen megoldott http szerver szinten, úgyhogy alternatíva nem nagyon van védett fájlok esetén. (Publikus fájloknál valószínűbb, hogy működik a range és a gzip együtt a http szerveren.)
Nincs is ertelme
Innentol kezdve tenyleg folosleges ezen erolkodni. Profi modon egyebkent ugy oldjak meg, hogy a download-okat biztosito szerver ad egy download ticketet (URL-t) amin letoltheto a file es nem PHP-bol szolgalod ki a fajlokat.
Sebesség
Nálunk annyival van még a kód megbolondítva, hogy szabályozni tudjuk a letöltés sebességét:
$darab = 512384;
for ($i = 0, $l = ceil(filesize($fajlnev) / $darab); $i < $l; $i++) {
echo file_get_contents($fajlnev, false, null, $i * $darab);
flush();
sleep(1);
}