{"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\/et\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","title":{"rendered":"Kaugfailide juurdep\u00e4\u00e4sus\u00fcsteem Cage","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>S\u00fcsteemi eesm\u00e4rk<\/h3>\n<p><\/p>\n<p>Kaugt\u00f6\u00f6laual juurdep\u00e4\u00e4su toetamine arvutites, mis on v\u00f5rgus. S\u00fcsteem toetab \"virtuaalselt\" k\u00f5iki p\u00f5hifailioperatsioone (loomine, kustutamine, lugemine, kirjutamine jne), vahetades tehingute (s\u00f5numite) kaudu andmeid TCP protokolli j\u00e4rgi.<\/p>\n<p><\/p>\n<h3>Rakendusvaldkonnad<\/h3>\n<p><\/p>\n<p>S\u00fcsteemi funktsionaalsus on efektiivne j\u00e4rgmistel juhtudel:<\/p>\n<ul>\n<li> natiivsetes rakendustes mobiilsete ja embedded seadmete jaoks (nutitelefonid, laevanduse juhtimiss\u00fcsteemid jne), mis vajavad kiiret juurdep\u00e4\u00e4su failidele kaugserverites, olukordades, kus on t\u00f5en\u00e4oliselt ajaliselt katkestusi (offline minnes);<\/li>\n<li> koormatud andmebaasides, kus p\u00e4ringute t\u00f6\u00f6tlemine toimub \u00fchel serveril, samas kui andmete salvestamine toimub teistel;<\/li>\n<li> jaotatud ettev\u00f5tte andmekogumiste ja t\u00f6\u00f6tlemise v\u00f5rkudes, mis n\u00f5uavad suurt andmevahetuse kiirus, varu ja usaldusv\u00e4\u00e4rsus;<\/li>\n<li> keerulistes s\u00fcsteemides, millel on mikroteenuste arhitektuur, kus teabe vahetuse viivitused moodulite vahel on kriitilise t\u00e4htsusega.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex> <\/p>\n<h3>Struktuur<\/h3>\n<p><\/p>\n<p>S\u00fcsteem Cage (sealhulgas Python 3.7 beta versioon Windowsi operatsioonis\u00fcsteemis) koosneb kahest p\u00f5hiosast: <\/p>\n<ol>\n<li> <b>Cageserver<\/b> \u2014 failiserveri programm (funktsioonide pakett), mis k\u00e4ivitatakse v\u00f5rgus asuvatel arvutitel, mille failidele on vajalik kaugjuurdep\u00e4\u00e4s;<\/li>\n<li> klass <b>Cage<\/b> klienditarkvara jaoks m\u00f5eldud meetodite teek, mis lihtsustab serveritega suhtlemise kodeerimist.<\/li>\n<\/ol>\n<p><\/p>\n<h3>S\u00fcsteemi kasutamine kliendi poolel<\/h3>\n<p><\/p>\n<p>Cage klassi meetodid asendavad tavalised, \"rutinoossed\" failis\u00fcsteemi operatsioonid: <i>failide loomine, avamine, sulgemine, kustutamine <\/i>ja ka <i>andmete lugemine\/kirjutamine binaarses formaadis<\/i> (andmete asukoha ja suuruse m\u00e4\u00e4ramisega). Kontseptuaalselt on need meetodid sarnased C keele failifunktsioonidega, kus failide avamine\/sulgemine toimub \u201esisendi-v\u00e4ljundi kanalite\u201c kaudu. <\/p>\n<p><\/p>\n<p>Teisis\u00f5nu, programmeerija ei t\u00f6\u00f6ta \"faili\" objektide (klassi <b>_io<\/b> Pythonis) meetodite, vaid Cage klassi meetoditega.<\/p>\n<p><\/p>\n<p>Objekti Cage loomisel luuakse algne side serveriga (v\u00f5i mitme serveriga), toimub autoriseerimine kliendi ID kaudu ja saadakse kinnitamine eraldatud sadama numbri kohta k\u00f5igi failitehingute teostamiseks. Objekti Cage eemaldamisel annab see serverile k\u00e4su \u00fchenduse l\u00f5petamiseks ja failide sulgemiseks. \u00dchenduse l\u00f5petamist v\u00f5ivad algatada ka serverid ise.<\/p>\n<p><\/p>\n<p>S\u00fcsteem suurendab lugemise\/kirjutamise kiirusel p\u00f5hinevat andmete vahetuses kasutatavate failifragmentide vahem\u00e4lu (vahem\u00e4lu) kasutamist kliendiprogrammide hulgas.<br \/>\nKlienditarkvara v\u00f5ib kasutada suvalist arvu Cage objekte erinevate seadistustega (vahem\u00e4lu suurus, plokkide suurus serveriga suhtlemisel jne). <\/p>\n<p><\/p>\n<p>\u00dcks Cage objekt v\u00f5ib vahetada andmeid mitme faili vahel mitmetes serverites. \u00dchendusparameetrid (serveri IP-aadress v\u00f5i DNS, autoriseerimise peaport, faili tee ja nimi) m\u00e4\u00e4ratakse objekti loomisel.<\/p>\n<p><\/p>\n<p>Kuna iga Cage objekt v\u00f5ib samal ajal t\u00f6\u00f6tada paljude failidega, kasutatakse vahem\u00e4lu jaoks \u00fchist m\u00e4luruumi. Vahem\u00e4lu suurus \u2013 lehek\u00fclgede arv ja nende suurus \u2013 m\u00e4\u00e4ratakse d\u00fcnaamiliselt Cage objekti loomise k\u00e4igus. N\u00e4iteks 1 GB vahem\u00e4lu on 1000 lehek\u00fclge suuruses 1 MB, v\u00f5i 10 000 lehek\u00fclge suuruses 100 KB, v\u00f5i 1 miljon lehek\u00fclge suuruses 1 KB. Lehek\u00fclgede suuruse ja arvu valik on iga rakenduse puhul spetsiifiline \u00fclesanne.<\/p>\n<p><\/p>\n<p>Samaaegselt v\u00f5ib kasutada mitut Cage objekti, et m\u00e4\u00e4rata erinevaid vahem\u00e4lu seadistusi s\u00f5ltuvalt info juurdep\u00e4\u00e4su erip\u00e4rast erinevates failides. Ahnas p\u00f5hialgoritmimeetodina rakendatakse lihtsalt vahem\u00e4lu: p\u00e4rast m\u00e4\u00e4ratud m\u00e4lumahtude t\u00e4itumist t\u00f5rjutakse uued lehek\u00fcljed vanade arvelt, j\u00e4rgides minimaalse p\u00f6\u00f6rdumise p\u00f5him\u00f5tet. Vahem\u00e4lu on eriti efektiivne eba\u00fchtlase (statistiliselt) \u00fchise juurdep\u00e4\u00e4su korral, esiteks erinevatele failidele ja teiseks iga faili fragmentidele. <\/p>\n<p><\/p>\n<p>Cage klass toetab andmete sisendi\/v\u00e4ljundi t\u00f6\u00f6tlemist mitte ainult andmeaadresside kaudu (t\u00e4psustades positsiooni ja massiivi pikkuse, \"asendades\" failis\u00fcsteemi toimingud), vaid ka madalamal, \"f\u00fc\u00fcsilisel\" tasemel \u2013 vahem\u00e4lu lehek\u00fclje numbrite kaudu. <\/p>\n<p><\/p>\n<p>Cage objektide jaoks toetatakse originaalset funktsiooni <i>\"hibernatsioon\"<\/i> (\u00absamm\u00bb) \u2013 neid saab \u00abkokku kerida\u00bb (n\u00e4iteks, kui serveritega on \u00fchendus katkenud v\u00f5i rakendus on peatatud jne) kliendi poolel paiknevasse kohalikku dump-faili ning kiiresti taastada see fail (p\u00e4rast \u00fchenduse taastamist, rakenduse uuesti k\u00e4ivitamist). See v\u00f5imaldab m\u00e4rkimisv\u00e4\u00e4rselt v\u00e4hendada liiklust kliendi programmi t\u00f6\u00f6tamise aktiveerimisel p\u00e4rast ajutist \u00aboffline\u00bb viibimist, kuna sageli kasutatavad failifragmendid on juba vahem\u00e4lus.<\/p>\n<p><\/p>\n<p>Cage \u2014 see on umbes 3600 koodi rida.<\/p>\n<p><\/p>\n<h3>Serverite ehitamise p\u00f5him\u00f5tted<\/h3>\n<p><\/p>\n<p>Cageserveri failiserverid saab k\u00e4ivitada suvalise sadamate arvuga, millest \u00fcks (\u00abpeamine\u00bb) kasutatakse ainult k\u00f5igi klientide autentimiseks, \u00fclej\u00e4\u00e4nud - andmevahetuseks. Cage serveri programmi jaoks on vajalik vaid Python. Samal ajal v\u00f5ib failiserveriga arvuti t\u00e4ita ka muid \u00fclesandeid. <\/p>\n<p><\/p>\n<p>Server k\u00e4ivitub esmalt kahel peamisel protsessil:<\/p>\n<ol>\n<li><b>\u00ab\u00dchendused\u00bb<\/b> \u2013 protsess, mis t\u00e4idab \u00fchenduse loomise ja selle l\u00f5petamise operatsioone klientidega serveri algatusel;<\/li>\n<li><b>\u00abOperatsioonid\u00bb<\/b> \u2013 protsess, mis t\u00e4idab klientide poolt failidega t\u00f6\u00f6tamiseks etten\u00e4htud \u00fclesandeid (operatsioone) ning samuti sulgeb sideseansid klientide korralduste j\u00e4rgi.<\/li>\n<\/ol>\n<p><\/p>\n<p>M\u00f5lemad protsessid ei ole s\u00fcnkroniseeritud ja on struktureeritud kui l\u00f5pmatud s\u00f5numite vastuv\u00f5tmise ja saatmise ts\u00fcklid, mis p\u00f5hinevad multiprocess-Queues, vaheobjektidel, lukustustel ja socket'itel.<br \/>\nProtsess \u00ab\u00dchendused\u00bb m\u00e4\u00e4rab igale kliendile andmete edastamiseks ja vastuv\u00f5tmiseks sadama. Sadamate arvu m\u00e4\u00e4rab serveri k\u00e4ivitamisel. Sadamate ja klientide vaheline vastavus salvestatakse protsesside vahel jagatud proxy-m\u00e4lu.<\/p>\n<p><\/p>\n<p>Protsess \u00abOperatsioonid\u00bb toetab failide ressursside jagamist, v\u00f5imaldades mitmel erineval kliendil koos (<i>kvasiparalleelselt<\/i>, kuna juurdep\u00e4\u00e4su hallatakse lukustuste abil) lugeda andmeid \u00fchest failist, kui see on selle algse avamise ajal \u00abesimese\u00bb kliendi poolt lubatud. \n<\/p>\n<p>Failide loomiseks \/ kustutamiseks \/ avamiseks \/ sulgemiseks esitatud k\u00e4sud <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/dts-dronten\/\"   title=\"serveris\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2497\">serveris<\/a> t\u00f6\u00f6deldakse \u00abOperatsioonid\u00bb protsessis rangelt j\u00e4rjestikku, kasutades serveri ops\u00fcsteemi failialust.<\/p>\n<p><\/p>\n<p>\u00dcldise lugemise\/kirjutamise kiirusestamiseks toimuvad need tegevused protsessis \"Operatsioonid\" genereeritud l\u00f5imedes (threads). L\u00f5imede arv on tavaliselt v\u00f5rdne avatud failide arvuga. Klientide lugemis-\/kirjutamis\u00fclesanded esitatakse \u00fchisj\u00e4rjekorda ja esimene vabanev l\u00f5im v\u00f5tab \u00fclesande selle algusest. Eriline loogika v\u00f5imaldab v\u00e4listada andmete \u00fclekirjutamise operatsioonid serveri m\u00e4lus.<\/p>\n<p><\/p>\n<p>Protsess \"Operatsioonid\" j\u00e4lgib klientide aktiivsust ja l\u00f5petab nende teenindamise nii nende k\u00e4skudest kui ka mitteaktiivsuse \u00fcletamise t\u00f5ttu.<\/p>\n<p><\/p>\n<p>Usaldusv\u00e4\u00e4rsuse tagamiseks j\u00e4lgib Cageserver k\u00f5iki tehingute logisid. \u00dcks \u00fchine logi sisaldab klientide s\u00f5numite koopiaid, millel on \u00fclesanded failide loomise\/, avamise\/, \u00fcmbernimetamise\/ ja kustutamise kohta. Iga t\u00f6\u00f6faili jaoks luuakse eraldi logi, kuhu kantakse koopiaid s\u00f5numitest lugemis- ja kirjutamis\u00fclesannete kohta selle t\u00f6\u00f6faili sees, samuti kirjutatud (uute) andmete massiivid ja andmete massiivid, mis h\u00e4vitati \u00fcle kirjutamise k\u00e4igus (uute andmete \"peale\" kirjutamine vanadele). <\/p>\n<p><\/p>\n<p>Need logid v\u00f5imaldavad taastada uusi muudatusi varukoopiatest ning \"tagasi p\u00f6\u00f6rduda\" jooksva sisu juurest vajalikku hetke minevikus. <\/p>\n<p><\/p>\n<p>Cageserveri kood sisaldab umbes 3100 rida.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Kaugfailide juurdep\u00e4\u00e4sus\u00fcsteem Cage\" src=\"\/wp-content\/uploads\/2019\/08\/606d593347d73274b0c172dae34da0d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Cageserveri faili serveri programmi k\u00e4ivitamine<\/h3>\n<p><\/p>\n<p>K\u00e4ivitamisel tuleb dialoogis m\u00e4\u00e4rata:<br \/>\n \u2014 peamine port autentimiseks;<br \/>\n \u2014 autoriseeritud klientidega tehingute vahetamiseks portide arv (alates 1 ja rohkem, nummerdamise jooks algab j\u00e4rgmisel p\u00e4rast peamise pordi numbrit).<\/p>\n<p><\/p>\n<h3>Klassi Cage kasutamine<\/h3>\n<p><\/p>\n<p><b>class<\/b> cage.<b>Cage<\/b>( <i>cage_name=&gt;&gt;, pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file=&gt;&gt;<\/i> )<\/p>\n<p><\/p>\n<p>Selle klassi abil luuakse objekte, mis suhtlevad faili serveritega ja sisaldavad puhvri m\u00e4lu.<\/p>\n<p><\/p>\n<p><b><u>Parameetrid<\/u><\/b><\/p>\n<p><\/p>\n<ul>\n<li> <b>cage_name<\/b>(<i>str<\/i>) \u2014 objekti tingimuslik nimetus, mida kasutatakse klientide tuvastamiseks serveri poolel <\/li>\n<li> <b>pagesize<\/b>(<i>int<\/i>) \u2014 \u00fche puhvri lehe suurus (baitides)<\/li>\n<li> <b>numpages<\/b>(<i>int<\/i>) \u2014 puhvri lehtede arv<\/li>\n<li> <b>maxstrlen<\/b>(<i>int<\/i>) \u2014 maksimaalne baitide stringi pikkus kirjutamis- ja lugemisoperatsioonides<\/li>\n<li> <b>server_ip<\/b>(<i>dict<\/i>) \u2014 s\u00f5nastik kasutatavate aadressidega <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/\"   title=\"serverid\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1347\">serverid<\/a>, kus v\u00f5ti on serveri tinglik nimi (serveri id rakenduses), ja v\u00e4\u00e4rtus on teekonna string: \u201cip address:port\u201d v\u00f5i \u201cDNS:port\u201d (nimede ja tegelike aadresside vastavus on ajutine, seda saab muuta)<\/li>\n<li> <b>ootama<\/b>(<i>int<\/i>) \u2014 ooteaeg serveri vastuse saamiseks portide saamisel (sekundites)<\/li>\n<li> <b>\u00e4rka \u00fcles<\/b>(<i>boolean<\/i>) \u2014 objekti loomise meetodi lipp (<i>Vale<\/i> \u2014 kui luuakse uus objekt, <i>T\u00f5si<\/i> \u2014 kui objekt luuakse varem \u201eminimeeritud\u201d olekust - kasutades operatsiooni \u201ehibernatsioon\u201d, vaikimisi False)<\/li>\n<li> <b>cache_file<\/b>(<i>str<\/i>) \u2014 failinimi hibernatsiooni jaoks<\/li>\n<\/ul>\n<p><\/p>\n<p><b><u>Meetodid<\/u><\/b><\/p>\n<p><\/p>\n<p>Kaitse.<b>file_create<\/b>( <i>server, tee<\/i> ) \u2013 loo uus fail<\/p>\n<p><\/p>\n<p>Kaitse.<b>file_rename<\/b>( <i>server, tee, new_name<\/i> ) \u2013 nimeta fail \u00fcmber<\/p>\n<p><\/p>\n<p>Kaitse.<b>file_remove<\/b>( <i>server, tee<\/i>) \u2013 kustuta fail<\/p>\n<p><\/p>\n<p>Kaitse.<b>open<\/b>( <i>server, tee, mod <\/i>) \u2013 avada fail<\/p>\n<p><\/p>\n<p>Tagastab <i>fchannel<\/i> kanali number. Parameeter <i>mod<\/i> \u2014 see on faili avamise re\u017eiim: \u201ewm\u201d \u2014 monopol, (lugemine\/kirjutamine), \u201ers\u201d \u2014 ainult lugemine, ja teistele klientidele ainult lugemiseks jagatud, \u201ews\u201d \u2014 lugemine\/kirjutamine, ja teistele klientidele ainult lugemiseks jagatud. <\/p>\n<p><\/p>\n<p>Kaitse.<b>sulgeda<\/b> (<i>fchannel<\/i>) \u2013 sulge fail<\/p>\n<p><\/p>\n<p>Kaitse.<b>kirjutama <\/b>(<i>fchannel, algus, andmed <\/i>) \u2013 kirjutada baitstring faili<\/p>\n<p><\/p>\n<p>Kaitse.<b>lugema <\/b>(<i>fchannel, algus, len_data<\/i> ) \u2013 lugeda baitstring faili<\/p>\n<p><\/p>\n<p>Kaitse.<b>put_pages <\/b>( <i>fchannel<\/i> ) \u2013 \u201epuudutab\u201d serverilt k\u00f5ik antud kanali lehed, mis on muudetud. Kasutatakse algoritmi punktides, kus on oluline, et k\u00f5ik operatsioonid kanalil oleksid f\u00fc\u00fcsiliselt serveris salvestatud.<\/p>\n<p><\/p>\n<p>Kaitse.<b>push_all<\/b> () \u2013 \u201epuudutab\u201d serverilt k\u00f5ik antud klassi Cage eksemplari kanalite lehed, mis on muudetud. Kasutatakse, kui on oluline, et k\u00f5ik operatsioonid k\u00f5igil kanalitel oleksid serveris salvestatud.<\/p>\n<p>Allikas: <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.1.1 - 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\/et\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\udd47Kaugfailide juurdep\u00e4\u00e4suteenus Cage | ProHoster","description":"S\u00fcsteemi m\u00e4\u00e4ramine Kaugjuurdep\u00e4\u00e4su tugiteenuste tugi failidele arvutites v\u00f5rgus.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/37019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=37019"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37019\/revisions"}],"predecessor-version":[{"id":159779,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37019\/revisions\/159779"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27748"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=37019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=37019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=37019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}