{"id":37019,"date":"2019-10-31T22:15:20","date_gmt":"2019-10-31T19:15:20","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sistema-udalennogo-fajlovogo-dostupa-cage\/"},"modified":"2019-10-31T22:15:20","modified_gmt":"2019-10-31T19:15:20","slug":"sistema-udalennogo-fajlovogo-dostupa-cage","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","title":{"rendered":"Cage t\u00e1voli f\u00e1jl hozz\u00e1f\u00e9r\u00e9si rendszer","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>A rendszer c\u00e9lja<\/h3>\n<p><\/p>\n<p>T\u00e1mogatja a f\u00e1jlok t\u00e1voli el\u00e9r\u00e9s\u00e9t a h\u00e1l\u00f3zatban l\u00e9v\u0151 sz\u00e1m\u00edt\u00f3g\u00e9peken. A rendszer \"virtu\u00e1lisan\" t\u00e1mogatja az \u00f6sszes alapvet\u0151 f\u00e1jlm\u0171veletet (l\u00e9trehoz\u00e1s, t\u00f6rl\u00e9s, olvas\u00e1s, \u00edr\u00e1s stb.) tranzakci\u00f3k (\u00fczenetek) csere r\u00e9v\u00e9n TCP protokollon kereszt\u00fcl.<\/p>\n<p><\/p>\n<h3>Alkalmaz\u00e1si ter\u00fcletek<\/h3>\n<p><\/p>\n<p>A rendszer funkcionalit\u00e1sa hat\u00e9kony az al\u00e1bbi esetekben:<\/p>\n<ul>\n<li> nat\u00edv mobil \u00e9s be\u00e1gyazott alkalmaz\u00e1sokban (okostelefonok, fed\u00e9lzeti ir\u00e1ny\u00edt\u00f3 rendszerek stb.), amelyek gyors hozz\u00e1f\u00e9r\u00e9st ig\u00e9nyelnek t\u00e1voli szervereken l\u00e9v\u0151 f\u00e1jlokhoz, v\u00e1rhat\u00f3 ideiglenes h\u00e1l\u00f3zati megszak\u00edt\u00e1sok mellett;<\/li>\n<li> terhelt adatb\u00e1zisokban, amikor a lek\u00e9rdez\u00e9sek feldolgoz\u00e1sa egyes szervereken, m\u00edg az adatok t\u00e1rol\u00e1sa m\u00e1sokon t\u00f6rt\u00e9nik;<\/li>\n<li> elosztott v\u00e1llalati h\u00e1l\u00f3zatokban inform\u00e1ci\u00f3gy\u0171jt\u00e9shez \u00e9s feldolgoz\u00e1shoz, ahol magas sebess\u00e9g\u0171 adatcsere, redundancia \u00e9s megb\u00edzhat\u00f3s\u00e1g sz\u00fcks\u00e9ges;<\/li>\n<li> komplex mikroszerviz architekt\u00far\u00e1val rendelkez\u0151 rendszerekben, ahol az inform\u00e1ci\u00f3 modulok k\u00f6z\u00f6tti cser\u00e9j\u00e9nek k\u00e9sleltet\u00e9se kritikus fontoss\u00e1g\u00fa.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex> <\/p>\n<h3>Strukt\u00fara<\/h3>\n<p><\/p>\n<p>A Cage rendszer (el\u00e9rhet\u0151 egy Python 3.7 beta verzi\u00f3ban Windows oper\u00e1ci\u00f3s rendszeren) k\u00e9t f\u0151 r\u00e9szb\u0151l \u00e1ll: <\/p>\n<ol>\n<li> <b>Cageserver<\/b> \u2013 egy f\u00e1jlszerver program (funkci\u00f3k\u00e9szlet), amely a h\u00e1l\u00f3zatban l\u00e9v\u0151 sz\u00e1m\u00edt\u00f3g\u00e9peken fut, amelyekhez t\u00e1voli hozz\u00e1f\u00e9r\u00e9s sz\u00fcks\u00e9ges a f\u00e1jlokhoz;<\/li>\n<li> oszt\u00e1ly <b>Cage<\/b> egy kliensoldali szoftver met\u00f3dus k\u00f6nyvt\u00e1ra, amely megk\u00f6nny\u00edti a szerverekkel val\u00f3 egy\u00fcttm\u0171k\u00f6d\u00e9s k\u00f3dol\u00e1s\u00e1t.<\/li>\n<\/ol>\n<p><\/p>\n<h3>A rendszer haszn\u00e1lata a kliensoldalon<\/h3>\n<p><\/p>\n<p>A Cage oszt\u00e1ly met\u00f3dusai felv\u00e1ltj\u00e1k a hagyom\u00e1nyos \"rutinszer\u0171\" f\u00e1jlrendszeri m\u0171veleteket: <i>l\u00e9trehoz\u00e1s, megnyit\u00e1s, bez\u00e1r\u00e1s, t\u00f6rl\u00e9s <\/i>f\u00e1jlok, valamint <i>adatok bin\u00e1ris form\u00e1tumban val\u00f3 olvas\u00e1sa\/\u00edr\u00e1sa<\/i> (az adatok poz\u00edci\u00f3j\u00e1nak \u00e9s m\u00e9ret\u00e9nek megad\u00e1s\u00e1val). Koncepcion\u00e1lisan ezek a met\u00f3dusok k\u00f6zel \u00e1llnak a C nyelv f\u00e1jlkezel\u0151 funkci\u00f3ihoz, ahol a f\u00e1jlok megnyit\u00e1sa\/bez\u00e1r\u00e1sa \"bemenet-kimeneti csatorn\u00e1kon\" t\u00f6rt\u00e9nik. <\/p>\n<p><\/p>\n<p>M\u00e1s szavakkal, a programoz\u00f3 nem a \"f\u00e1jl\" objektumok met\u00f3dusaival (a <b>_io<\/b> Pythonban), hanem a Cage oszt\u00e1ly met\u00f3dusaival dolgozik.<\/p>\n<p><\/p>\n<p>Amikor egy Cage objektum p\u00e9ld\u00e1nyt l\u00e9trehoz, kezdeti kapcsolatot l\u00e9tes\u00edt a szerverrel (vagy t\u00f6bb szerverrel), kliensazonos\u00edt\u00f3val hiteles\u00edt \u00e9s meger\u0151s\u00edt\u00e9st kap az \u00f6sszes f\u00e1jlm\u0171velet v\u00e9grehajt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges portsz\u00e1mr\u00f3l. Amikor a Cage objektum elt\u0171nik, megparancsolja a szervernek a kapcsolat megsz\u00fcntet\u00e9s\u00e9t \u00e9s a f\u00e1jlok lez\u00e1r\u00e1s\u00e1t. A kapcsolatok megsz\u00fcntet\u00e9s\u00e9t a szerverek is kezdem\u00e9nyezhetik.<\/p>\n<p><\/p>\n<p>A rendszer a gyakran haszn\u00e1lt f\u00e1jlfragmentumok programok \u00e1ltali gyors\u00edt\u00e1s\u00e1n alapul\u00f3 olvas\u00e1s\/\u00edr\u00e1si teljes\u00edtm\u00e9ny n\u00f6vel\u00e9s\u00e9re szolg\u00e1l, amely a mem\u00f3ri\u00e1ban (cache-ben) t\u00e1rol\u00f3dik.<br \/>\nA kliensprogram b\u00e1rmennyi Cage objektumot haszn\u00e1lhat, k\u00fcl\u00f6nb\u00f6z\u0151 be\u00e1ll\u00edt\u00e1sokkal (cache m\u00e9ret, blokkok m\u00e9rete a szerverrel val\u00f3 kommunik\u00e1ci\u00f3ban stb.). <\/p>\n<p><\/p>\n<p>Egy Cage objektum egyszerre t\u00f6bb f\u00e1jllal is adatot cser\u00e9lhet t\u00f6bb szerveren. A kapcsolati param\u00e9terek (IP-c\u00edm vagy DNS, a f\u0151 port az azonos\u00edt\u00e1shoz, a f\u00e1jl el\u00e9r\u00e9si \u00fatja \u00e9s neve) az objektum l\u00e9trehoz\u00e1sakor ker\u00fclnek megad\u00e1sra.<\/p>\n<p><\/p>\n<p>Mivel minden Cage objektum egyszerre t\u00f6bb f\u00e1jllal is m\u0171k\u00f6dik, a cache-el\u00e9shez k\u00f6z\u00f6s mem\u00f3riahaszn\u00e1lat sz\u00fcks\u00e9ges. A cache m\u00e9rete \u2014 az oldalak sz\u00e1ma \u00e9s m\u00e9rete \u2014 dinamikusan, a Cage objektum l\u00e9trehoz\u00e1sakor van be\u00e1ll\u00edtva. P\u00e9ld\u00e1ul 1 GB cache 1000 db 1 MB-os vagy 10 000 db 100 kB-os oldalt vagy 1 milli\u00f3 1 kB-os oldalt jelent. Az oldalak m\u00e9ret\u00e9nek \u00e9s sz\u00e1m\u00e1nak megv\u00e1laszt\u00e1sa az egyes alkalmaz\u00e1sesetekhez kapcsol\u00f3d\u00f3 konkr\u00e9t feladat.<\/p>\n<p><\/p>\n<p>T\u00f6bb Cage objektum egyidej\u0171 haszn\u00e1lat\u00e1val k\u00fcl\u00f6nb\u00f6z\u0151 cache-be\u00e1ll\u00edt\u00e1sokat hat\u00e1rozhatunk meg att\u00f3l f\u00fcgg\u0151en, hogy hogyan f\u00e9r\u00fcnk hozz\u00e1 az inform\u00e1ci\u00f3khoz k\u00fcl\u00f6nb\u00f6z\u0151 f\u00e1jlokban. Alap\u00e9rtelmezettk\u00e9nt a legegyszer\u0171bb cache-el\u00e9si algoritmus alkalmaz\u00e1sra ker\u00fcl: a megadott mem\u00f3ria kapacit\u00e1s kimer\u00fcl\u00e9se ut\u00e1n az \u00faj oldalak a r\u00e9giakat helyettes\u00edtik a lehet\u0151 legkevesebb h\u00edv\u00e1s elve alapj\u00e1n. A cache-el\u00e9s k\u00fcl\u00f6n\u00f6sen hat\u00e9kony, ha statisztikai szempontb\u00f3l egyenetlen a hozz\u00e1f\u00e9r\u00e9s, egyr\u00e9szt a k\u00fcl\u00f6nb\u00f6z\u0151 f\u00e1jlokhoz, m\u00e1sr\u00e9szt pedig minden f\u00e1jl fragmentum\u00e1hoz. <\/p>\n<p><\/p>\n<p>A Cage oszt\u00e1ly nemcsak a data c\u00edmeken v\u00e9gzi a be- \u00e9s ki\u00edr\u00e1st (a poz\u00edci\u00f3 \u00e9s a t\u00f6mb hossza megad\u00e1s\u00e1val, \u201ehelyettes\u00edtve\u201d a f\u00e1jlrendszer m\u0171veleteit), hanem alacsonyabb, \u201efizikai\u201d szinten is \u2014 az oldalak sz\u00e1ma alapj\u00e1n a mem\u00f3ri\u00e1ban. <\/p>\n<p><\/p>\n<p>A Cage objektumok sz\u00e1m\u00e1ra t\u00e1mogatott az eredeti funkci\u00f3 <i>\u201ehibern\u00e1l\u00e1s\u201d<\/i> (\u00ab\u00e1lom\u00bb) \u2013 ezeket \u201e\u00f6ssze lehet hajtani\u201d (p\u00e9ld\u00e1ul, ha megszakad a kapcsolat a szerverekkel, vagy az alkalmaz\u00e1s le\u00e1ll, stb.) egy helyi dump f\u00e1jlba az \u00fcgyf\u00e9l oldal\u00e1n, \u00e9s gyorsan vissza lehet \u00e1ll\u00edtani ebb\u0151l a f\u00e1jlb\u00f3l (a kapcsolat helyre\u00e1ll\u00edt\u00e1sa ut\u00e1n, az alkalmaz\u00e1s \u00fajraind\u00edt\u00e1sakor). Ez jelent\u0151s forgalommegtakar\u00edt\u00e1st tesz lehet\u0151v\u00e9 az \u00fcgyf\u00e9lszoftver m\u0171k\u00f6d\u00e9sbe l\u00e9p\u00e9sekor ideiglenes \u201eoffline\u201d \u00e1llapot ut\u00e1n, mivel a gyakran haszn\u00e1lt f\u00e1jlfragmentumok m\u00e1r a gyors\u00edt\u00f3t\u00e1rban lesznek.<\/p>\n<p><\/p>\n<p>A Cage k\u00f6r\u00fclbel\u00fcl 3600 sor k\u00f3dot tartalmaz.<\/p>\n<p><\/p>\n<h3>Szerverek fel\u00e9p\u00edt\u00e9s\u00e9nek alapelvei<\/h3>\n<p><\/p>\n<p>A Cageserver f\u00e1jl-szerverek tetsz\u0151leges sz\u00e1m\u00fa porttal ind\u00edthat\u00f3k, ebb\u0151l az egyik (a \u201ef\u0151\u201d) kiz\u00e1r\u00f3lag az \u00f6sszes \u00fcgyf\u00e9l hiteles\u00edt\u00e9s\u00e9re szolg\u00e1l, a t\u00f6bbi pedig az adatok cser\u00e9j\u00e9re. A Cage szerverprogramhoz csup\u00e1n Python sz\u00fcks\u00e9ges. Ezenk\u00edv\u00fcl a f\u00e1jl-szerver sz\u00e1m\u00edt\u00f3g\u00e9p b\u00e1rmilyen egy\u00e9b munk\u00e1t is v\u00e9gezhet. <\/p>\n<p><\/p>\n<p>A szerver els\u0151k\u00e9nt k\u00e9t f\u0151 folyamat \u00f6sszess\u00e9gek\u00e9nt indul:<\/p>\n<ol>\n<li><b>\u201eKapcsolatok\u201d<\/b> \u2013 folyamat az \u00fcgyfelekkel val\u00f3 kapcsolat l\u00e9trehoz\u00e1s\u00e1ra \u00e9s megsz\u00fcntet\u00e9s\u00e9re a szerver kezdem\u00e9nyez\u00e9s\u00e9vel;<\/li>\n<li><b>\u201eM\u0171veletek\u201d<\/b> \u2013 folyamat az \u00fcgyfelek f\u00e1jlokkal kapcsolatos feladatainak (m\u0171veleteinek) v\u00e9grehajt\u00e1s\u00e1ra, valamint a kapcsolat lez\u00e1r\u00e1s\u00e1ra az \u00fcgyfelek parancsai alapj\u00e1n.<\/li>\n<\/ol>\n<p><\/p>\n<p>Mindk\u00e9t folyamat nincs szinkroniz\u00e1lva, \u00e9s v\u00e9gtelen \u00fczenetk\u00fcld\u00e9si \u00e9s -fogad\u00e1si ciklusokk\u00e9nt szervez\u0151dnek multiprocessz\u00f3s sorok, proxy-objektumok, z\u00e1rol\u00e1sok \u00e9s socketek alapj\u00e1n.<br \/>\nA \u201eKapcsolatok\u201d folyamat minden \u00fcgyf\u00e9l sz\u00e1m\u00e1ra portot rendel az adat\u00e1tvitelhez. A portok sz\u00e1m\u00e1t a szerver ind\u00edt\u00e1sakor kell megadni. A portok \u00e9s \u00fcgyfelek k\u00f6z\u00f6tti megfeleltet\u00e9s a folyamatok k\u00f6z\u00f6tti megosztott proxy-mem\u00f3ri\u00e1ban t\u00e1rol\u00f3dik.<\/p>\n<p><\/p>\n<p>A \u201eM\u0171veletek\u201d folyamat t\u00e1mogatja a f\u00e1jlforr\u00e1sok megoszt\u00e1s\u00e1t, \u00edgy t\u00f6bb k\u00fcl\u00f6nb\u00f6z\u0151 \u00fcgyf\u00e9l k\u00f6z\u00f6sen (<i>kv\u00e1zi p\u00e1rhuzamosan<\/i>, mivel a hozz\u00e1f\u00e9r\u00e9st z\u00e1rol\u00e1sok kezelik) olvashatja ugyanazt a f\u00e1jlt, ha ezt az kezdeti megnyit\u00e1skor az \u201eels\u0151\u201d \u00fcgyf\u00e9l enged\u00e9lyezte. \n<\/p>\n<p>A f\u00e1jlok l\u00e9trehoz\u00e1s\u00e1ra\/elt\u00e1vol\u00edt\u00e1s\u00e1ra\/megnyit\u00e1s\u00e1ra\/lez\u00e1r\u00e1s\u00e1ra vonatkoz\u00f3 parancsok <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/hu\/server\/dts-dronten\/\"   title=\"szerveren\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2497\">szerveren<\/a> a \u201eM\u0171veletek\u201d folyamatban szigor\u00faan sorban, a szerver oper\u00e1ci\u00f3s rendszer\u00e9nek f\u00e1jlrendszer\u00e9vel egy\u00fcttm\u0171k\u00f6dve dolgoz\u00f3dnak fel.<\/p>\n<p><\/p>\n<p>Az olvas\u00e1si\/\u00edr\u00e1si m\u0171veletek \u00e1ltal\u00e1nos felgyors\u00edt\u00e1sa \u00e9rdek\u00e9ben ezek a m\u0171veletek sz\u00e1lakban (threads) val\u00f3sulnak meg, amelyeket az \u201eOper\u00e1ci\u00f3k\u201d folyamat hoz l\u00e9tre. A sz\u00e1lak sz\u00e1ma jellemz\u0151en megegyezik a megnyitott f\u00e1jlok sz\u00e1m\u00e1val. Az \u00fcgyfelekt\u0151l \u00e9rkez\u0151 olvas\u00e1si\/\u00edr\u00e1si feladatok egy k\u00f6z\u00f6s sorba ker\u00fclnek, \u00e9s az els\u0151 felszabadul\u00f3 sz\u00e1l veszi el a feladatot a sor elej\u00e9r\u0151l. Egy speci\u00e1lis logika lehet\u0151v\u00e9 teszi a szerver mem\u00f3ri\u00e1j\u00e1ban a meg\u00edrt adatok vissza\u00edr\u00e1s\u00e1nak elker\u00fcl\u00e9s\u00e9t.<\/p>\n<p><\/p>\n<p>Az \u201eOper\u00e1ci\u00f3k\u201d folyamat figyelemmel k\u00eds\u00e9ri az \u00fcgyfelek aktivit\u00e1s\u00e1t, \u00e9s megsz\u00fcnteti a kiszolg\u00e1l\u00e1sukat, ha \u00fagy parancsolj\u00e1k, vagy ha t\u00fall\u00e9pik a t\u00e9tlen id\u0151korl\u00e1tot.<\/p>\n<p><\/p>\n<p>A megb\u00edzhat\u00f3s\u00e1g biztos\u00edt\u00e1sa \u00e9rdek\u00e9ben a Cageserver napl\u00f3zza az \u00f6sszes tranzakci\u00f3t. Egy k\u00f6z\u00f6s napl\u00f3 tartalmazza az \u00fcgyfelekt\u0151l \u00e9rkez\u0151 \u00fczenetek m\u00e1solatait l\u00e9trehoz\u00e1si\/megnyit\u00e1si\/\u00e1tnevez\u00e9si\/t\u00f6rl\u00e9si feladatokkal kapcsolatban. Minden egyes munka f\u00e1jlhoz k\u00fcl\u00f6n napl\u00f3 k\u00e9sz\u00fcl, amelyben az adott f\u00e1jl olvas\u00e1si \u00e9s \u00edr\u00e1si feladatainak \u00fczenetei, valamint az \u00edrt (\u00faj) adathalmazok \u00e9s a fel\u00fcl\u00edr\u00e1s sor\u00e1n megsemmis\u00fclt adathalmazok tal\u00e1lhat\u00f3k. <\/p>\n<p><\/p>\n<p>Ezek a napl\u00f3k lehet\u0151v\u00e9 teszik a leg\u00fajabb m\u00f3dos\u00edt\u00e1sok helyre\u00e1ll\u00edt\u00e1s\u00e1t a biztons\u00e1gi m\u00e1solatokb\u00f3l, valamint lehet\u0151s\u00e9get adnak a \u201evissza\u00e1ll\u00e1sra\u201d a jelenlegi tartalomr\u00f3l egy kor\u00e1bbi id\u0151pontra. <\/p>\n<p><\/p>\n<p>A Cageserver k\u00f6r\u00fclbel\u00fcl 3100 k\u00f3dsorb\u00f3l \u00e1ll.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Cage t\u00e1voli f\u00e1jl hozz\u00e1f\u00e9r\u00e9si rendszer\" src=\"\/wp-content\/uploads\/2019\/08\/606d593347d73274b0c172dae34da0d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>A Cageserver f\u00e1jl szerver program ind\u00edt\u00e1sa<\/h3>\n<p><\/p>\n<p>Ind\u00edt\u00e1skor a p\u00e1rbesz\u00e9dpanelben meg kell hat\u00e1rozni:<br \/>\n \u2014 az alapport az azonos\u00edt\u00e1shoz;<br \/>\n \u2014 a tranzakci\u00f3k hivatalos \u00fcgyfeleikkel val\u00f3 cser\u00e9j\u00e9hez sz\u00fcks\u00e9ges portok sz\u00e1m\u00e1t (1 vagy t\u00f6bb, a sz\u00e1mok \u00e1raml\u00e1sa az alapport k\u00f6vetkez\u0151 sz\u00e1m\u00e1val kezd\u0151dik).<\/p>\n<p><\/p>\n<h3>A Cage oszt\u00e1ly haszn\u00e1lata<\/h3>\n<p><\/p>\n<p><b>class<\/b> cage.<b>Cage<\/b>( <i>cage_name=\u00bb, pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file=\u00bb<\/i> )<\/p>\n<p><\/p>\n<p>Ebb\u0151l az oszt\u00e1lyb\u00f3l objektumok sz\u00fcletnek, amelyek interakci\u00f3t val\u00f3s\u00edtanak meg a f\u00e1jl szerverekkel \u00e9s tartalmaznak puffer mem\u00f3ri\u00e1t.<\/p>\n<p><\/p>\n<p><b><u>Be\u00e1ll\u00edt\u00e1sok<\/u><\/b><\/p>\n<p><\/p>\n<ul>\n<li> <b>cage_name<\/b>(<i>str<\/i>) \u2014 az objektum azonos\u00edt\u00e1s\u00e1hoz haszn\u00e1lt felt\u00e9teles n\u00e9v, amely az \u00fcgyfelek azonos\u00edt\u00e1s\u00e1ban seg\u00edt a szerver oldal\u00e1n <\/li>\n<li> <b>pagesize<\/b>(<i>eg\u00e9sz<\/i>) \u2014 a puffer mem\u00f3ria egy oldal\u00e1nak m\u00e9rete (b\u00e1jtokban)<\/li>\n<li> <b>numpages<\/b>(<i>eg\u00e9sz<\/i>) \u2014 a puffer mem\u00f3ria oldalainak sz\u00e1ma<\/li>\n<li> <b>maxstrlen<\/b>(<i>eg\u00e9sz<\/i>) \u2014 a byte string maxim\u00e1lis hossza \u00edr\u00e1si \u00e9s olvas\u00e1si m\u0171veletek sor\u00e1n<\/li>\n<li> <b>server_ip<\/b>(<i>dict<\/i>) \u2014 a haszn\u00e1lt c\u00edmek sz\u00f3t\u00e1ra <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/hu\/server\/\"   title=\"szerverek\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1347\">szerverek<\/a>, ahol a kulcs a szerver felt\u00e9teles neve (a szerver azonos\u00edt\u00f3ja az alkalmaz\u00e1son bel\u00fcl), az \u00e9rt\u00e9k pedig egy c\u00edm: \u201cip c\u00edm:port\u201d vagy \u201cDNS:port\u201d (a nevek \u00e9s a val\u00f3di c\u00edmek \u00f6sszehangol\u00e1sa ideiglenes, v\u00e1ltoztathat\u00f3)<\/li>\n<li> <b>v\u00e1rakoz\u00e1s<\/b>(<i>eg\u00e9sz<\/i>) \u2014 a v\u00e1lasz v\u00e1rakoz\u00e1si ideje a szervert\u0151l kapott portok eset\u00e9ben (m\u00e1sodpercben)<\/li>\n<li> <b>\u00e9bren<\/b>(<i>boolean<\/i>) \u2014 a objektum l\u00e9trehoz\u00e1s\u00e1nak m\u00f3dj\u00e1ra vonatkoz\u00f3 z\u00e1szl\u00f3 (<i>False<\/i> \u2014 ha \u00faj objektumot hozunk l\u00e9tre, <i>Igaz<\/i> \u2014 ha az objektum egy kor\u00e1bban \u00ab\u00f6sszeomlott\u00bb \u00e1llapotb\u00f3l \u00e1ll helyre a \u201ehibern\u00e1l\u00e1s\u201d m\u0171velet seg\u00edts\u00e9g\u00e9vel, alap\u00e9rtelmez\u00e9s szerint Hamis)<\/li>\n<li> <b>cache_file<\/b>(<i>str<\/i>) \u2014 a hibern\u00e1l\u00e1shoz haszn\u00e1lt f\u00e1jl neve<\/li>\n<\/ul>\n<p><\/p>\n<p><b><u>M\u00f3dszerek<\/u><\/b><\/p>\n<p><\/p>\n<p>B\u00f6rt\u00f6n.<b>file_create<\/b>( <i>szerver, \u00fatvonal<\/i> ) \u2013 \u00faj f\u00e1jl l\u00e9trehoz\u00e1sa<\/p>\n<p><\/p>\n<p>B\u00f6rt\u00f6n.<b>file_rename<\/b>( <i>szerver, \u00fatvonal, \u00faj_n\u00e9v<\/i> ) \u2013 f\u00e1jl \u00e1tnevez\u00e9se<\/p>\n<p><\/p>\n<p>B\u00f6rt\u00f6n.<b>file_remove<\/b>( <i>szerver, \u00fatvonal<\/i>) \u2013 f\u00e1jl t\u00f6rl\u00e9se<\/p>\n<p><\/p>\n<p>B\u00f6rt\u00f6n.<b>open<\/b>( <i>szerver, \u00fatvonal, mod <\/i>) \u2013 f\u00e1jl megnyit\u00e1sa<\/p>\n<p><\/p>\n<p>Visszaadja <i>fchannel<\/i> csatorna sz\u00e1ma. A param\u00e9ter <i>mod<\/i> \u2014 a f\u00e1jl megnyit\u00e1s\u00e1nak m\u00f3dja: \u201ewm\u201d \u2014 kiz\u00e1r\u00f3lagos (olvas\u00e1s\/\u00edr\u00e1s), \u201ers\u201d \u2014 csak olvas\u00e1s, \u00e9s m\u00e1s kliensek \u00e1ltal megosztott csak olvas\u00e1sra, \u201ews\u201d \u2014 olvas\u00e1s\/\u00edr\u00e1s, \u00e9s m\u00e1s kliensek \u00e1ltal megosztott csak olvas\u00e1sra. <\/p>\n<p><\/p>\n<p>B\u00f6rt\u00f6n.<b>close<\/b> (<i>fchannel<\/i>) \u2013 f\u00e1jl bez\u00e1r\u00e1sa<\/p>\n<p><\/p>\n<p>B\u00f6rt\u00f6n.<b>write <\/b>(<i>fchannel, kezdet, adat <\/i>) \u2013 b\u00e1jt-sorozat \u00edr\u00e1sa a f\u00e1jlba<\/p>\n<p><\/p>\n<p>B\u00f6rt\u00f6n.<b>read <\/b>(<i>fchannel, kezdet, len_data<\/i> ) \u2013 b\u00e1jt-sorozat olvas\u00e1sa a f\u00e1jlb\u00f3l<\/p>\n<p><\/p>\n<p>B\u00f6rt\u00f6n.<b>put_pages <\/b>( <i>fchannel<\/i> ) \u2013 \u201eki\u00fcr\u00edti\u201d a pufferb\u0151l a szerverre az \u00f6sszes m\u00f3dos\u00edtott oldalt a megadott csatorn\u00e1b\u00f3l. Akkor haszn\u00e1latos, ha biztosra akarunk menni, hogy az \u00f6sszes m\u0171velet a csatorn\u00e1n fizikailag elment\u00e9sre ker\u00fclt a f\u00e1jlban a szerveren.<\/p>\n<p><\/p>\n<p>B\u00f6rt\u00f6n.<b>push_all<\/b> () \u2013 \u201eki\u00fcr\u00edti\u201d a pufferb\u0151l a szerverre az \u00f6sszes m\u00f3dos\u00edtott oldalt minden csatorn\u00e1b\u00f3l a Cage oszt\u00e1ly p\u00e9ld\u00e1ny\u00e1hoz. Akkor haszn\u00e1latos, amikor biztosra akarunk menni, hogy az \u00f6sszes m\u0171velet az \u00f6sszes csatorn\u00e1n elment\u00e9sre ker\u00fclt a szerveren.<\/p>\n<p>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/463085\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445 \u0432 \u0441\u0435\u0442\u0438. \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u00ab\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u00bb \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435, \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435, \u0447\u0442\u0435\u043d\u0438\u0435, \u0437\u0430\u043f\u0438\u0441\u044c \u0438 \u0434\u0440.) \u043f\u0443\u0442\u0451\u043c \u043e\u0431\u043c\u0435\u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u043c\u0438 (\u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438) \u043f\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443 \u0422\u0421\u0420. \u041e\u0431\u043b\u0430\u0441\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445: \u0432 \u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445 \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0438 embedded \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 (\u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u044b, \u0431\u043e\u0440\u0442\u043e\u0432\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0442.\u043f.), \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0445 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27748,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37019","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445 \u0432 \u0441\u0435\u0442\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 Cage | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445 \u0432 \u0441\u0435\u0442\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:15:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:15:20+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47T\u00e1voli f\u00e1jl hozz\u00e1f\u00e9r\u00e9si rendszer Cage | ProHoster","description":"A rendszer c\u00e9lja A f\u00e1jlok t\u00e1voli el\u00e9r\u00e9s\u00e9nek t\u00e1mogat\u00e1sa a h\u00e1l\u00f3zaton l\u00e9v\u0151 sz\u00e1m\u00edt\u00f3g\u00e9peken.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 Cage | ProHoster","og:description":"\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445 \u0432 \u0441\u0435\u0442\u0438.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:15:20+00:00","article:modified_time":"2019-10-31T19:15:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37019","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 21:52:49","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:34:26","updated":"2026-02-09 21:52:49","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=37019"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37019\/revisions"}],"predecessor-version":[{"id":159779,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37019\/revisions\/159779"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/27748"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=37019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=37019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=37019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}