Kép elérése más fájlon keresztül
Üdv!
A szerveren levő /home/rootie/users/ mappában lévő képek elérését szeretném bonyolítani a következőképpen:
jelenleg ha el akarok érni egy képet, az így valósul meg:
..amit szeretnék:
Véleményem szerint újraíró modullal lehetne megoldani a legegyszerűbben. Ehhez szeretném a segítségeteket kérni, kellene egy olyan sor, ami megoldja a fönt említetteket.
■ A szerveren levő /home/rootie/users/ mappában lévő képek elérését szeretném bonyolítani a következőképpen:
jelenleg ha el akarok érni egy képet, az így valósul meg:
http://example.org/users/picture.jpg -> /home/rootie/users/picture.jpg
..amit szeretnék:
http://example.org/users/picture.jpg -> /home/rootie/convert.php?file=users/picture.jpg
Véleményem szerint újraíró modullal lehetne megoldani a legegyszerűbben. Ehhez szeretném a segítségeteket kérni, kellene egy olyan sor, ami megoldja a fönt említetteket.
Véleményem szerint újraíró
Mit értesz újraíró modul alatt?
Szerintem rewriterule-ra
Ebben az esetben:
Megoldás
Itt a megoldásom:
Ha csak jogosultság
Ovatosan!
Ezzel teljesen egyetértek, de
Hat...
Egy kép túl sok méretben
De ha mégis le lenne mentve mind külön-külön és van olyan kép, amit nagyon ritkán, vagy szinte soha nem használ az oldal vagy nem nézik meg, akkor fölöslegesen foglalja a tárterületet. A cache 24 óránként törlődik és ha egy kép egy méretben már le van mentve, akkor nem méretezi újra, csak kiolvassa onnan.
Azt, hogy ne tudjanak mindenféle méretet kérni, azt hiszem le lehet korlátozni valahogy.
Célszerűbb csak azokat
ha utólag kell...
Ha utólag kell egy méret, még mindig írhatsz egy cron jobot, ami végigfut a már feltöltött képeken, és elkészíti a hiányzó méretet.
Ha van 100ezer kép, amelyről
A kontrollálhatatlan számú
Köszönöm az
Beiktattam egy RewriteCond-ot is, amely ellenőrzi, hogy a gyorsítótárban már megtalálható-e az adott kép és ha igen, akkor egyből azt nyitja meg, nem pedig php-n keresztül.
A php fájl csak annyit csinált ezelőtt (abban az esetben, ha már meg volt a kész kép), hogy fejlécben beállítja a tartalom típusát majd beolvassa a képfájlt readfile()-lal.
Bár itt valószínűleg kis
A másik, hogy így visszaolvasva nem volt túl részletes, amit az image_gear.php-ról mondtam. Tehát ha esetleg nem sikerült jól átadnom a gondolatom, valami ilyesmit kéne csináljon az image_gear.php-d:
- Bedob egy queue-ba egy konvertálás requestet (melyik file, hova tegye a konvertáló stb)
- Vár a válaszra egy bizonyos timeoutig. Ha timeout volt, akkor http error.
A queue lehet valami queue szerver, vagy sima adatbázis tábla stb, az mindegy.
A másik oldalon pedig n db konverter process, ami pollozza ezt a queue-t, és indítgatja a konvertálást, amikor beérkezik egy request. Az eredményt pedig visszatolja a queue-ba, ahonnan az image_gear.php leveszi (ha nem timeoutol-t el közben). Így dinamikusan tudsz méretezni, ha kell gyorsan be tudsz állítani új konvertáló gépet, ha a meglévő nem bírja az iramot, és 100 requestre nem indul 100 konvertálás, csak n db.
Aztán ha úgy hozza a szükség, lehet priorizálni is a requesteket, hogy azonnali kiszolgálásra kell a konvertálás, vagy valami upload/admin funkcionalitás miatt kell konvertálgatni, és ráér később. Vagy pl az image_gear.php jelezheti, hogy eltimeoutolt, és akkor annak kisebbre lehet venni a prioritását, hogy az élő requesteket tudja kiszolgálni a konverter.
Bár itt valószínűleg kis
Nem, a
readfile()
lényege épp az, hogy közvetlenül másolja lemezről a kimenetre az adatot (vö. Linuxsendfile()
).A kézikönyvből:
Akkor ez azóta vagy
Ez nem rossz ötlet, viszont a
A readfile() elvileg nem a memóriába tölti az adatot, épp ezért használom ezt, nem pedig fopen és 2ezer byte-onként olvastatom ki (ez lassabbnak tűnik).
Kicsit off
De ha van is, az átméretezés mindig elég "vasigényes", tehát a többféle méretben tárolás kevésbé "költségesnek" tűnik. Persze a szinkronizálás is szempont, de mikor egy oldalra kell pl. 10-20 képet egyszerre méretezni, azt a látogató már igencsak észre fogja venni futásidőben.
Szerintem itt a szoftver logikai struktúráját újra kéne gondolni, úgy tűnik, hogy több irányban is feszegeti a határokat, ami csak bajt szokott szülni.
Ne haragudj, de honnét van
Fényképmegosztó?
Ja-ja
Akkor viszont pláne necces a "röptében" méretezés.
rewriterule csak akkor
így ha megvan már a legenerált kép, akkor a php kört már egyáltalán nem kell lefutni.