{"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":"Kaugsalvestuss\u00fcsteem Cage","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>S\u00fcsteemi otstarve<\/h3>\n<p><\/p>\n<p>Toetab kaugjuurdep\u00e4\u00e4su failidele arvutites v\u00f5rgus. S\u00fcsteem toetab 'virtuaalselt' k\u00f5iki peamisi failihalduse operatsioone (loomine, kustutamine, lugemine, kirjutamine jne) tehingute (s\u00f5numite) vahetamise kaudu TCP-protokolli abil.<\/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 mobiilsetes ja sisse ehitatud seadmetes (nutitelefonid, pardajuhtimisseadmed jne), mis vajavad kiiret juurdep\u00e4\u00e4su failidele kaugserverites t\u00f5en\u00e4oliste sidekatkestuste olukordades (offline re\u017eiimil);<\/li>\n<li> koormatud andmebaasides, kus p\u00e4ringute t\u00f6\u00f6tlemine toimub \u00fchel serveril, kuid andmete salvestamine teisel;<\/li>\n<li> jaotatud ettev\u00f5tte v\u00f5rkudes andmete kogumiseks ja t\u00f6\u00f6tlemiseks, mis n\u00f5uab kiiret andmevahetust, varundamist ja usaldusv\u00e4\u00e4rsust;<\/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>Cage s\u00fcsteem (toimiv beta-versioon Python 3.7 operatsioonis\u00fcsteemis Windows) sisaldab kahte peamist osa: <\/p>\n<ol>\n<li> <b>Cageserver<\/b> \u2014 programmifailiserver (funktsioonide komplekt), mis t\u00f6\u00f6tab v\u00f5rgus arvutites, millele on vajalik kaugjuurdep\u00e4\u00e4s failidele;<\/li>\n<li> klass <b>Cage<\/b> koos kliendi tarkvara meetodite teegiga, mis lihtsustab serveritega suhtlemise kodeerimist.<\/li>\n<\/ol>\n<p><\/p>\n<h3>S\u00fcsteemi kasutamine kliendi poolt<\/h3>\n<p><\/p>\n<p>Klassi Cage meetodid asendavad tavalised, \"rutiinsed\" failis\u00fcsteemi toimingud: <i>failide loomine, avamine, sulgemine, kustutamine <\/i>ja, samuti <i>andmete lugemine\/kirjutamine binaarses formaadis<\/i> (andmete positsiooni ja suuruse n\u00e4itamisega). Kontseptuaalselt on need meetodid l\u00e4hedased C keele failifunktsioonidele, kus failide avamine\/sulgemine toimub sisendi-v\u00e4ljundi \"kanalitel\". <\/p>\n<p><\/p>\n<p>Teisis\u00f5nu, programmeerija ei t\u00f6\u00f6ta \"faili\" objektide (klassi <b>_io<\/b> Pythonis) meetoditega, vaid klassi Cage meetoditega.<\/p>\n<p><\/p>\n<p>Objekti Cage loomisel luuakse algne side serveriga (v\u00f5i mitme serveriga), toimub kliendi ID kaudu autoriseerimine ja saadakse kinnituskood eraldatud sadama numbri jaoks, mis on vajalik k\u00f5igi failitehingute teostamiseks. Cage objekti eemaldamisel saadetakse serverile k\u00e4sk side l\u00f5petamiseks ja failide sulgemiseks. Side katkestamist v\u00f5ivad algatada ka serverid.<\/p>\n<p><\/p>\n<p>S\u00fcsteem suurendab lugemise\/kirjutamise j\u00f5udlust, p\u00f5hinedes kliendiprogrammide sageli kasutatavate failifragmendi vahem\u00e4lu (m\u00e4lu) baasil.<br \/>\nKlienditarkvara v\u00f5ib kasutada suvalist arvu Cage objekte erinevate seadistustega (vahem\u00e4lu suurus, plokkide suurus serveriga vahetamisel jne). <\/p>\n<p><\/p>\n<p>\u00dcks Cage objekt v\u00f5ib vahetada andmeid mitme faili ja mitme serveriga. \u00dchenduse parameetrid (serveri IP-aadress v\u00f5i DNS, autoriseerimise p\u00f5hikaabel, 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 mitme failiga, kasutatakse vahem\u00e4lu jaoks \u00fchist m\u00e4luressursi. Vahem\u00e4lu suurus \u2013 lehtede arv ja nende suurus \u2013 m\u00e4\u00e4ratakse d\u00fcnaamiliselt Cage objekti loomisel. N\u00e4iteks 1 GB vahem\u00e4lu on 1000 lehte, iga\u00fche suurus 1 MB, v\u00f5i 10 000 lehte, iga\u00fche suurus 100 KB, v\u00f5i 1 miljon lehte, iga\u00fche suurus 1 KB. Suure ja lehtede arvu valik on konkreetne \u00fclesanne iga rakenduse puhul.<\/p>\n<p><\/p>\n<p>Saab samaaegselt kasutada mitut Cage objekti, et m\u00e4\u00e4rata erinevaid vahem\u00e4lu seadeid, mis s\u00f5ltuvad erinevate failide teabele juurde p\u00e4\u00e4semise omadustest. Alusena kasutatakse lihtsaimat vahem\u00e4lumehhanismi: kui m\u00e4\u00e4ratud m\u00e4lu maht on ammendatud, t\u00f5ukavad uued lehed v\u00e4lja vanad minimaalsete juurdep\u00e4\u00e4sude arvu alusel. Vahem\u00e4lu on eriti efektiivne eba\u00fchtlase (statistilisest vaatepunktist) koosjuhtimise korral, esiteks erinevate failidega ja teiseks iga faili fragmentidega. <\/p>\n<p><\/p>\n<p>Klasse Cage toetab andmete sisendit\/ v\u00e4ljundit mitte ainult andmeaadresside kaudu (m\u00e4\u00e4rates massiivi asukoha ja pikkuse, \"asendades\" failis\u00fcsteemi toimingud), vaid ka madalamal, \"f\u00fc\u00fcsilisel\" tasemel nagu m\u00e4lulehtede numbrite kaudu. <\/p>\n<p><\/p>\n<p>Cage objektide jaoks toetatakse originaalset funktsiooni <i>\"hibernatsiooni\"<\/i> (\"une\") \u2013 neid saab \"kokku voltida\" (n\u00e4iteks serveritega \u00fchenduse katkemisel v\u00f5i rakenduse peatamisel jne) kohalikku dump-faili kliendi poolel ja kiiresti taastada sellest failist (p\u00e4rast \u00fchenduse taastamist, rakenduse uuesti k\u00e4ivitamisel). See v\u00e4hendab oluliselt liiklust, kui kliendiprogramm aktiveeritakse p\u00e4rast ajutist \"offline\" viibimist, kuna sagedasti kasutatavad failifragmentide osad on juba vahem\u00e4lu salvestatud.<\/p>\n<p><\/p>\n<p>Cage koosneb umbes 3600 koodireast.<\/p>\n<p><\/p>\n<h3>Serverite ehitamise p\u00f5him\u00f5tted<\/h3>\n<p><\/p>\n<p>Cageserveri failiserverid saavad t\u00f6\u00f6tada suvalise arvu portidega, millest \u00fcks (\u201ep\u00f5hiport\u201c) kasutatakse ainult k\u00f5igi klientide autoriseerimiseks, \u00fclej\u00e4\u00e4nud aga andmevahetuseks. Cage'i serveri programm vajab ainult Pythonit. Failiserveriga arvuti saab samal ajal t\u00e4ita ka muid \u00fclesandeid. <\/p>\n<p><\/p>\n<p>Server algab esmalt kahe p\u00f5hiprotsessi kogumina:<\/p>\n<ol>\n<li><b>\u201e\u00dchendused\u201c<\/b> \u2013 protsess, mis tegeleb \u00fchenduste loomise ja l\u00f5petamisega klientidega serveri algatusel;<\/li>\n<li><b>\u201eOperatsioonid\u201c<\/b> \u2013 protsess, mis tegeleb klientide failide t\u00f6\u00f6tlemise \u00fclesannete t\u00e4itmise ja \u00fchenduste sulgemisega klientide k\u00e4sul.<\/li>\n<\/ol>\n<p><\/p>\n<p>M\u00f5lemad protsessid ei ole s\u00fcnkroniseeritud ning on korraldatud l\u00f5puteks sp\u00e4mmerimiste ja s\u00f5numite saatmise ts\u00fckliteks mitme protsessi j\u00e4rjekordade, puhversalvamise, lukustuste ja socket'ite alusel.<br \/>\n\u201e\u00dchenduse\u201c protsess m\u00e4\u00e4rab igale kliendile andmevahetuse porti. Portide arv m\u00e4\u00e4ratakse serveri k\u00e4ivitamisel. Portide ja klientide vastavus hoitakse protsesside vahel jagatud puhversalves.<\/p>\n<p><\/p>\n<p>Protsess \"Operatsioonid\" toetab failide ressursside jagamist, v\u00f5imaldades mitmel erineval kliendil koos (<i>kvasiparaalselt<\/i>, kuna juurdep\u00e4\u00e4s on hallatav lukustuste kaudu) lugeda andmeid \u00fchest failist, kui see on esialgse avamise ajal \"esimese\" kliendi poolt lubatud. \n<\/p>\n<p>K\u00e4skluste t\u00f6\u00f6tlemine failide loomise \/ kustutamise \/ avamise \/ sulgemise kohta <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/dts-dronten\/\"   title=\"serveril\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2497\">serveril<\/a> toimub protsessis \"Operatsioonid\" rangelt j\u00e4rjestikuselt serveri OS failis\u00fcsteemi kasutades.<\/p>\n<p><\/p>\n<p>\u00dchise lugemise \/ kirjutamise kiirendamiseks toimuvad need toimingud voogudes (threads), mille loob protsess \"Operatsioonid\". Tavaliselt on voogude arv v\u00f5rdsed avatud failide arvuga. Kliendilt saadetud lugemise \/ kirjutamise \u00fclesanded esitatakse \u00fchisesse j\u00e4rjekorda ning esimene vabanev voog haarab \u00fclesande selle algusest. Eriline loogika v\u00e4listab andmete \u00fcle kirjutamise operatiivm\u00e4lu serveris.<\/p>\n<p><\/p>\n<p>Protsess \"Operatsioonid\" j\u00e4lgib klientide tegevust ja l\u00f5petab nende teenindamise nii nende k\u00e4skluste alusel kui ka mitteaktiivsuse ajast \u00fcletamisel.<\/p>\n<p><\/p>\n<p>\u0414\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 Cageserver \u0432\u0435\u0434\u0435\u0442 \u0436\u0443\u0440\u043d\u0430\u043b\u044b \u0432\u0441\u0435\u0445 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0439. \u041e\u0434\u0438\u043d \u043e\u0431\u0449\u0438\u0439 \u0436\u0443\u0440\u043d\u0430\u043b \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043a\u043e\u043f\u0438\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0441 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\/ \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0435\/ \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435\/ \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432. \u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0436\u0443\u0440\u043d\u0430\u043b, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u043e\u043f\u0438\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u0441 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438 \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0438\u0441\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u044d\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u0444\u0430\u0439\u043b\u0435, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u044b\u0445 (\u043d\u043e\u0432\u044b\u0445) \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043c\u0430\u0441\u0441\u0438\u0432\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043a\u0430\u0437\u0430\u043b\u0438\u0441\u044c \u0443\u043d\u0438\u0447\u0442\u043e\u0436\u0435\u043d\u044b \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0438\u0441\u0438 (\u0437\u0430\u043f\u0438\u0441\u0438 \u043d\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u00ab\u043f\u043e\u0432\u0435\u0440\u0445\u00bb \u0441\u0442\u0430\u0440\u044b\u0445). <\/p>\n<p><\/p>\n<p>\u042d\u0442\u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u043a \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0445 \u043a\u043e\u043f\u0438\u044f\u0445, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u00ab\u043e\u0442\u043a\u0430\u0442\u0430\u00bb \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c. <\/p>\n<p><\/p>\n<p>Cageserver \u2014 \u044d\u0442\u043e \u043e\u043a\u043e\u043b\u043e 3100 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Kaugsalvestuss\u00fcsteem Cage\" src=\"\/wp-content\/uploads\/2019\/08\/606d593347d73274b0c172dae34da0d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>\u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0444\u0430\u0439\u043b-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 Cageserver<\/h3>\n<p><\/p>\n<p>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0432 \u0434\u0438\u0430\u043b\u043e\u0433\u0435 \u043d\u0430\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c:<br \/>\n \u2014 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043f\u043e\u0440\u0442 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438;<br \/>\n \u2014 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0440\u0442\u043e\u0432 \u0434\u043b\u044f \u043e\u0431\u043c\u0435\u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\u043c\u0438 \u0441 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 (\u043e\u0442 1-\u0433\u043e \u0438 \u0431\u043e\u043b\u0435\u0435, \u043f\u0443\u043b \u043d\u043e\u043c\u0435\u0440\u043e\u0432 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0437\u0430 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430).<\/p>\n<p><\/p>\n<h3>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 Cage<\/h3>\n<p><\/p>\n<p><b>class<\/b> cage.<b>Cage<\/b>( <i>cage_name=&#187;&#187;, pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file=&#187;&#187;<\/i> )<\/p>\n<p><\/p>\n<p>Sellest klassist luuakse objekte, mis suhtlevad failiserveritega 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 nimi, mida kasutatakse klientide identifitseerimiseks serveri poolel <\/li>\n<li> <b>pagesize<\/b>(<i>int<\/i>) \u2014 \u00fche puhvri m\u00e4lulehe suurus (baitides)<\/li>\n<li> <b>numpages<\/b>(<i>int<\/i>) \u2014 puhvri m\u00e4lu lehtede arv<\/li>\n<li> <b>maxstrlen<\/b>(<i>int<\/i>) \u2014 maksimaalne baitide stringi pikkus kirjutamise ja lugemise operatsioonides<\/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=\"serverite\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1347\">serverite<\/a>, kus v\u00f5tmena on objekti tingimuslik nimi (serveri id rakenduses) ja v\u00e4\u00e4rtuseks on aadressi string: \u201cip address:port\u201d v\u00f5i \u201cDNS:port\u201d (nimede ja tegelike aadresside sidumine on ajutine, seda saab muuta)<\/li>\n<li> <b>wait<\/b>(<i>int<\/i>) \u2014 vastuse ootamisaja kestus serverilt sadamate saamisel (sekundites)<\/li>\n<li> <b>awake<\/b>(<i>boolean<\/i>) \u2014 objekti loomise meetodi lipp (<i>False<\/i> \u2014 kui luuakse uus objekt, <i>True<\/i> \u2014 kui objekt luuakse varasemalt \u201ejustitud\u201d olekust \u2014 kasutades \u201ehibernatsiooni\u201d operatsiooni, vaikev\u00e4\u00e4rtus on vale)<\/li>\n<li> <b>cache_file<\/b>(<i>str<\/i>) \u2014 hibernateerimise failinimi<\/li>\n<\/ul>\n<p><\/p>\n<p><b><u>Meetodid<\/u><\/b><\/p>\n<p><\/p>\n<p>Kehav.<b>file_create<\/b>( <i>server, path<\/i> ) \u2013 loo uus fail<\/p>\n<p><\/p>\n<p>Kehav.<b>file_rename<\/b>( <i>server, path, new_name<\/i> ) \u2013 muuda faili nime<\/p>\n<p><\/p>\n<p>Kehav.<b>file_remove<\/b>( <i>server, path<\/i>) \u2013 kustuta fail<\/p>\n<p><\/p>\n<p>Kehav.<b>open<\/b>( <i>server, path, mod <\/i>) \u2013 avamine fail<\/p>\n<p><\/p>\n<p>Tagastab <i>fchannel<\/i> kanali number. Parameeter <i>mod<\/i> \u2014 see fail avamise re\u017eiim: \u201ewm\u201c \u2014 monopolne (lugemine\/kirjutamine), \u201ers\u201c \u2014 ainult lugemine ja teiste klientide poolt jagatud lugemine, \u201ews\u201c \u2014 lugemine\/kirjutamine ning teistele klientidele jagatud ainult lugemiseks. <\/p>\n<p><\/p>\n<p>Kehav.<b>close<\/b> (<i>fchannel<\/i>) \u2013 sulge fail<\/p>\n<p><\/p>\n<p>Kehav.<b>write <\/b>(<i>fchannel, begin, data <\/i>) \u2013 kirjuta baitide string faili<\/p>\n<p><\/p>\n<p>Kehav.<b>read <\/b>(<i>fchannel, begin, len_data<\/i> ) \u2013 loe baitide string faili<\/p>\n<p><\/p>\n<p>Kehav.<b>put_pages <\/b>( <i>fchannel<\/i> ) \u2013 \u201evabastab\u201c serverisse k\u00f5ik m\u00e4\u00e4ratud kanali muudetud lehed puhvrist. Kasutatakse nendes algoritmi punktides, kus on oluline olla kindel, et k\u00f5ik toimingud kanalil on f\u00fc\u00fcsiliselt salvestatud failis serveris.<\/p>\n<p><\/p>\n<p>Kehav.<b>push_all<\/b> () \u2013 \u201evabastab\u201c serverisse k\u00f5ik m\u00e4\u00e4ratud klassi Cage instantsi k\u00f5igi kanalite muudetud lehed puhvrist. Kasutatakse, kui on oluline olla kindel, et k\u00f5ik toimingud k\u00f5ikidel kanalitel on 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 4.9.10 - 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. \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\" \/>\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) 4.9.10\" \/>\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. \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\" \/>\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\u00e4su s\u00fcsteem Cage | ProHoster","description":"S\u00fcsteemi otstarve on toetada kaugjuurdep\u00e4\u00e4su failidele arvutites, mis on \u00fchendatud v\u00f5rguga. S\u00fcsteem toetab k\u00f5iki peamisi failioperatsioone \u201evirtuaalselt\u201c (loome, kustutamine, lugemine, kirjutamine jne) suhtlemise kaudu tehingute (s\u00f5numite) vahetamise kaudu TCP-protokolli abil. S\u00fcsteemi kasutusvaldkonnad S\u00fcsteemi funktsionaalsus on efektiivne j\u00e4rgmistel juhtudel: natiivsetes rakendustes mobiil- ja sisseehitatud seadmetes (nutitelefonid, lennukite juhtimisseened jne), mis vajavad kiiret.","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. \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","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"},"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}]}}