Nagyméretű fájlok feltöltése, letöltése korlátozásokkal
Üdv weblabor tagok!
Kaptam egy érdekes munkahelyi feladatot és a helyes fejlesztési irányvonal meghatározásához kéne néhány információ, egy kis segítség tőletek Guruktól. Néztem a keresőben nem találtam ilyen témát.
A feladat:
Nagy méretű fájlok (max.: 2G) feltöltésének és a letöltésének a korlátozása hostonként eltérő paraméterekkel.
Ami érdekelne:
Mik a lehetőségek PHP, Python szinten (Ti melyiket javasoljátok a program elkészítéshez)
Milyen szoftvereket kéne telepíteni a Debian-os szerverre amivel meg tudom oldani ezeket a korlátozásokat.
PHP beállításokat ismerem, de ha van valami extrém a 2GB os fájloknál, ne tartsd.
Nem konkrét megvalósításra vágyok, inkább csak ötletekre, amiért nagyon hálás volnék!
■ Kaptam egy érdekes munkahelyi feladatot és a helyes fejlesztési irányvonal meghatározásához kéne néhány információ, egy kis segítség tőletek Guruktól. Néztem a keresőben nem találtam ilyen témát.
A feladat:
Nagy méretű fájlok (max.: 2G) feltöltésének és a letöltésének a korlátozása hostonként eltérő paraméterekkel.
Ami érdekelne:
Mik a lehetőségek PHP, Python szinten (Ti melyiket javasoljátok a program elkészítéshez)
Milyen szoftvereket kéne telepíteni a Debian-os szerverre amivel meg tudom oldani ezeket a korlátozásokat.
PHP beállításokat ismerem, de ha van valami extrém a 2GB os fájloknál, ne tartsd.
Nem konkrét megvalósításra vágyok, inkább csak ötletekre, amiért nagyon hálás volnék!
Lehet
Debian szerver
Alapvetően egy Debian OS-el (Lenny; Apache2; PHP5; gondolom van Python is) megpakolt szerver szolgálná ki, a feltöltéseket. Rendszergazda nincs, vagy mintha nem is lenne (ködmön szindróma). Root hozzáférés van, tehát be tudom állítani.
Flash feltöltős cuccos van, lesz is használva.
A desktop alkalmazáson gondolkoztam, de sok biztonsági kérdést hordoz magában. Maga a program nem egy túl bonyolult dolog.
megjegyzés:
Én nem indítanák ilyen szolgáltatást, az egyszer biztos, mert szerintem ebben semmi poén nincsen sőt még veszélyes is. Ha nem tudsz jobbat csinálni a DropBox-nál akkor felejtős a dolog :) (márpedig nem tudsz) De mint írtam munkahelyi ez egy feladat.
Kérdés:
Apache2 mod_bw; mod_ipsecurity modulokkal van tapasztalatod? Mennyire alkalmas a korlátozásos részének a megoldására?
Nem tudsz shapelni
Rendes post
Rendetlen post
mod_cband vagy mod_bw; mod_slotlimit ezekkel próbálom megoldani a fel és letöltés korlátozását.
A mod_ip..-t azért nem találtad, mert hajnali kómában megtoldottam az IP szóval. mod_security - de ez nem fog kelleni (úgy néz ki).
Az igazság az, hogy mindig kifogom az ilyen projekteket, de nem zavar, mert egy csomót tanulhat belőle az ember.
Olvastam Én is ezt a sleep-es megoldást de nekem nem tetszik. Valamiért ódzkodok ilyen utasításokat használni, mikor minden a sebességről szól.
-----
Dúrvamód várjuk ám a múltkor beharangozott cikked!
Poen
--
A cikk keszuloben van es igazabol tobb cikk lesz mert nagyon sok az anyag. Meg rendezem ossze.
"en nem vagyok ellensege egy
Nagyon köszi, rendes tőled ez a felajánlás (és a szavadon foglak - csak idő kérdése!), de sínen van a dolog!
Gép előtt
"A dologtól teljesen
"chunkokban küldöd a dolgot" - oké a dolog, de miért nem tolhatom ki neki a teljes fájlt? (memória? 1G lesz a feltölthető fájl korlát)
Én ezzel a USER 'tással' párhuzamosan magamat is szivatom, sőt megkockáztatom a tervezett szolgáltatás népszerűsége ezen a ponton el is dőlt. De ez és még néhány dolog, kifejezetten igény. pl.: letöltés korlátozása IP alapján (kevesebb szál;napi limit)
Én személy szerint nem korlátoznám a feltöltés illetve a letöltést. De ha tudnád milyen erőforrás hiányos környezetbe kell megvalósítani azt hiszem vagy sírnál, vagy halálra nevetnéd magad , de egy hátast mindenképpen dobnál.
Várjál
Összefoglalva: a letöltés oldalon tudsz korlátozni, a feltöltés oldalon nem.
Desktop program
Elindulok az Apache modulokkal és meglátom meddig jut a mutatvány.
Nagyon köszi az infókat, igazán sokat segítettél.
Hajra
Üzletileg
(üzletileg és jogilag) Nem a kutyák dolga
Az én dolgom az, hogy elkészítsem ezt az Über faca rendszert.
Én ezzel az egésszel úgy vagyok, ha nincs elég erőforrásod rá, akkor az egész nem ér semmit. Ahogy ezt a projektet átgondoltam Én semmi poént nem látok benne, de ez megint nem a kutyulik doga->(a programozós alias suszter maradjon a kaptafájánál.).
DropBox:
Igen a Desktop program az egyik előnye ('Dropbox Popsikereinek'), a másik mint a (Ubuntu One) esetében is a titkosított adat tárolás, ami valljuk be egy ilyen rendszernél nem utolsó szempont.
Nagy valószínűséggel a DropBox-ot nem egy ember fejleszti :), és van háttere is a dolognak.
Ha elakadok kereslek (köszi)!
Találtam valamit
Találtam valamit a fölfele forgalom shapeléséhez: http://www.linuximq.net/faq.html
Kicsit experimentalnak néz ki de akár jó is lehet.
János
shapeléséhez
Köszi, linket érdekesnek és ígéretesnek tűnik (remélem nem kell használni :).
Jövő héten indul a móka 1. fázisa kiváncsi leszek hogy muzsikálnak az Apache modulok.
Ha nem lesz más igény akkor CI PHP keretrendszer lesz az alapja, (Jó volna Yii de durván nem értek hozzá, bár a végére megtanulnám). Ma csináltam az egészről egy elmetérképet, ami inkább elmebajhoz hasonlított a végére, hát lesz mint megvalósítani (virtuális fájlrendszer + hozzá egy fájlkezelő UI, nem lesz unatkozás :).
arth2o
Hááát
Az a probléma, hogy a webfejlesztő szakmában hajlamosak az emberek minden feladatot szögnek nézni (mert van kalapács, avagy a PHP). Erre a feladatra valószínűleg bármilyen frameworköt használsz, kevéssé alkalmas. Nem annyira azért mert távol áll tőle hanem azért mert a későbbiekben mindenféle oprendszer-közeli dolog belefejlesztése igen nehéz lesz. Tudom, hogy vízzel kell főzni és gyorsan kell összerakni de hosszabb távon a saját szakmai előrehaladásod érdekében lehet, hogy érdemes belekostolni a Perl vagy Python nyelvekbe és megnézegetni, hogy néz ki az oprendszer oldala a feladatoknak. Ha ez a tudásod meglenne, lehet hogy sokkal gyorsabban és mindamellett hatékonyabban tudnád megoldani a mostani feladatot.
Ami a Yii frameworköt illeti, az elődjéhez (a Pradohoz) volt/van szerencsétlenségem. A legnagyobb rákfenéje, hogy mindent egy úgynevezett pagestate-el akar megoldani ami gyakorlatilag eliminálja a kliens-oldali programozás szükségességét és egyben a HTTP protokoll egyik lényeges tulajdonságát igyekszik kikerülni. Ezzel semmi baj nem volna, ha a rendszer néhány jól irányzott refreshtől és back gombtól nem ijedne meg annyira hogy kidobja a "pagestate corrupt" oldalt és abban a sessionben már semmire nem hajlandó.
a háát az fáj most egy picit
Python-hoz értek és szeretem is. Sokkal kiforrottabb és hatékonyabb nyelvnek tartom mint a PHP-t szívesen használnék csak azt (de ezzel a többi PHP fejlesztőt kilőném a sorból - nem tudnának hozzányúlni). Jól látod néhány Python szkriptet írnom kell amivel aktuális rendszer információkat kérek le és ehhez igazítom a várakozás folyamatát, idejét.
Oprendszer, szerver oldalról némileg ismerem a Linuxot, régóta Ubuntut használok (-és rendszergazdi jogsim is van :), de a legfontosabb hogy amit csinálok az érdekel is (ha nem akkor gáz van).
Köszi az építő kritikát, sokat segítettél!
Ne fogd vissza magad a jövőben sem :)
Ha nekem kellene csinálni...
Amivel az igazi bajod lesz és semmiképp ne hanyagold el, az a fájlok száma. Simán előfordulhat az, hogy egy user betölt 10000 fájlt egy könyvtárba és utána jön panaszkodni, hogy lassú. Ergó mindenképpen valahogy mappelned kéne a fájlokat, erre viszont adatbázist kell építeni amit a maga oldaláról nem árt particionálni ha értelmes tempóval akarsz benne keresni.
Természetesen azt is eljátszhatod, hogy lősz magadnak egy olyan fájlrendszert ahol ez nem probléma de nem tudnék neked kapásból ajánlani ilyesmit.
Nagyjából ennyi, ami hirtelen eszembe jutott.
Fel kell kötnöm a gatyát, az
Ez a WebDAV-os dolog tényleg érdekes és egyszerűsítene néhány dolgot.
Adatbázis MySQL lesz (SQlite3 is szimpi de túl sok az adat). Van valami tipped a témakörben?
MySQL
A tényleges fájlokat meg tárold valami hash szerint, a metaadatok adatbázisából meg hivatkozz rá. Esetleg ha van lehetőségetek rá, nézzétek meg valamelyik zFS-t támogató oprendszert (Solaris, *BSD) és tegyetek be gyors diskeket a gyakran használt fájloknak.
Ha nincs lehetőségetek ellenben van valami barriereket támogató RAID vezérlőtök, álljatok át Ext4-re, az jót tesz a performanciának. Viszont figyeljetek oda, hogy támogassa a barriereket különben áramszünet után majd nagyot néztek.
Ja igen, a memcached jó dolog, használjátok sűrűn, használjátok sokat, a memória olcsó és igen nagyon meggyorsítja a kiszolgálást ha nem kell MySQL-ben turkálni. Ha keresni akartok benne, akkor nézzetek valami key-value storet, mint pl Keyspace (magyar fejlesztés ha jól tudom) vagy az Apache Cassandra.
helyzetjelentés
Voltak érdekes dolgok, ami kiakasztott az ez IE böngészőcsalád de ez nem újdonság.
Design tili-toli fázisban van a dolog.
Nagy segítség a http://www.plupload.com/. Adatbázis, Memcache be van használva. A cuccos elvileg gyorsabb mint a jelenleg piacon lévő eszközök (eddig :)
De most jön az izgalmasabb rész, mikor tömegével tehetik ugyanezt, csoportokra korlátozva. Kontra no erőforrás.
Terheles