{"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\/sv\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","title":{"rendered":"Fj\u00e4rrfil\u00e5tkomstsystemet Cage","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>Systemets syfte<\/h3>\n<p><\/p>\n<p>St\u00f6d f\u00f6r fj\u00e4rr\u00e5tkomst till filer p\u00e5 datorer i n\u00e4tverket. Systemet st\u00f6djer \"virtuellt\" alla grundl\u00e4ggande filoperationer (skapande, radering, l\u00e4sning, skrivning och s\u00e5 vidare) genom utbyte av transaktioner (meddelanden) via TCP-protokollet.<\/p>\n<p><\/p>\n<h3>Anv\u00e4ndningsomr\u00e5den<\/h3>\n<p><\/p>\n<p>Systemets funktionalitet \u00e4r effektiv i f\u00f6ljande fall:<\/p>\n<ul>\n<li> i inhemska applikationer f\u00f6r mobila och inbyggda enheter (smartphones, styrsystem och s\u00e5 vidare) som kr\u00e4ver snabb \u00e5tkomst till filer p\u00e5 fj\u00e4rrservrar i situationer med potentiella tillf\u00e4lliga avbrott i anslutningen (n\u00e4r de g\u00e5r offline);<\/li>\n<li> i belastade databashanteringssystem, om bearbetning av f\u00f6rfr\u00e5gningar utf\u00f6rs p\u00e5 en server, medan datalagring sker p\u00e5 en annan;<\/li>\n<li> i distribuerade f\u00f6retagsn\u00e4tverk f\u00f6r insamling och bearbetning av information, d\u00e4r h\u00f6g data\u00f6verf\u00f6ringshastighet, reservkopiering och tillf\u00f6rlitlighet kr\u00e4vs;<\/li>\n<li> i komplexa system med mikrotj\u00e4nstarkitektur, d\u00e4r f\u00f6rdr\u00f6jningar i informationsutbytet mellan moduler \u00e4r kritiskt viktiga.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex> <\/p>\n<h3>Struktur<\/h3>\n<p><\/p>\n<p>Cage-systemet (det finns en implementation \u2014 beta-version p\u00e5 Python 3.7 f\u00f6r Windows) inkluderar tv\u00e5 huvuddelar: <\/p>\n<ol>\n<li> <b>Cageserver<\/b> \u2014 en filserverapplikation (funktionspaket) som k\u00f6rs p\u00e5 datorer i n\u00e4tverket, vars filer kr\u00e4ver fj\u00e4rr\u00e5tkomst;<\/li>\n<li> klass <b>Cage<\/b> med ett bibliotek av metoder f\u00f6r klientprogramvara som f\u00f6renklar kodning av interaktion med servrar.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Anv\u00e4ndning av systemet p\u00e5 klientsidan<\/h3>\n<p><\/p>\n<p>Metoderna i Cage-klassen ers\u00e4tter vanliga, \"rutinem\u00e4ssiga\" filsystemoperationer: <i>skapande, \u00f6ppnande, st\u00e4ngning, radering <\/i>av filer, samt <i>l\u00e4sa\/skriva data i bin\u00e4rt format<\/i> (med angivande av position och storlek p\u00e5 data). Konceptuellt \u00e4r dessa metoder n\u00e4ra filfunktionerna i C-spr\u00e5ket, d\u00e4r \u00f6ppning\/st\u00e4ngning av filer sker \"p\u00e5 kanaler\" f\u00f6r in- och utdata. <\/p>\n<p><\/p>\n<p>Med andra ord arbetar programm\u00f6ren inte med metoder f\u00f6r \"fil\"-objekt (klassen <b>_io<\/b> i Python), utan med metoderna fr\u00e5n klassen Cage.<\/p>\n<p><\/p>\n<p>N\u00e4r en instans av objektet Cage skapas, uppr\u00e4ttar det initial f\u00f6rbindelse med servern (eller flera servrar), genomg\u00e5r autentisering med kundens ID och f\u00e5r en bekr\u00e4ftelse med numret f\u00f6r den tilldelade porten f\u00f6r att utf\u00f6ra alla filoperationer. N\u00e4r objektet Cage tas bort, kommer det att ge servern ett kommando att avsluta f\u00f6rbindelsen och st\u00e4nga filerna. F\u00f6rbindelsen kan \u00e4ven initieras av servrarna sj\u00e4lva.<\/p>\n<p><\/p>\n<p>Systemet \u00f6kar hastigheten p\u00e5 l\u00e4s-\/skrivoperationer baserat p\u00e5 buffring av ofta anv\u00e4nda filfragment i klientprogrammens cache (buffert) i RAM-minnet.<br \/>\nKlientprogramvaran kan anv\u00e4nda ett obegr\u00e4nsat antal objekt Cage med olika inst\u00e4llningar (buffertstorlek, blockstorlek vid kommunikation med servern, etc.). <\/p>\n<p><\/p>\n<p>Ett objekt Cage kan utbyta data med flera filer p\u00e5 flera servrar. Parametrarna f\u00f6r f\u00f6rbindelsen (IP-adress eller DNS f\u00f6r servern, huvudport f\u00f6r autentisering, filv\u00e4g och namn) anges vid skapandet av objektet.<\/p>\n<p><\/p>\n<p>Eftersom varje objekt Cage kan arbeta med m\u00e5nga filer samtidigt, anv\u00e4nds ett gemensamt minnesutrymme f\u00f6r buffrande. Cache-storleken \u2013 antalet sidor och deras storlek, anges dynamiskt vid skapandet av objektet Cage. Till exempel, en cache p\u00e5 1 GB \u00e4r 1000 sidor p\u00e5 1 MB, eller 10 000 sidor p\u00e5 100 KB, eller 1 miljon sidor p\u00e5 1 KB. Valet av storlek och antal sidor \u00e4r en specifik uppgift f\u00f6r varje ans\u00f6kningsfall.<\/p>\n<p><\/p>\n<p>Flera objekt Cage kan anv\u00e4ndas samtidigt f\u00f6r att best\u00e4mma olika buffertinst\u00e4llningar beroende p\u00e5 \u00e5tkomstm\u00f6nster till information i olika filer. Som grund till\u00e4mpas den enklaste buffringsalgoritmen: efter att den angivna m\u00e4ngden minne har uppn\u00e5tts, ers\u00e4tter nya sidor gamla enligt principen f\u00f6r borttagning med minimiantalet \u00e5tkomster. Buffring \u00e4r s\u00e4rskilt effektiv vid oregelbundet (statistiskt sett) gemensamt tilltr\u00e4de, f\u00f6rst och fr\u00e4mst till olika filer, och f\u00f6r det andra, till fragment av varje fil. <\/p>\n<p><\/p>\n<p>Klassen Cage st\u00f6djer in- och utmatning inte bara per datadress (ange position och l\u00e4ngd p\u00e5 arrayen, \"ers\u00e4tter\" operationerna i filsystemet), utan ocks\u00e5 p\u00e5 en l\u00e4gre, \"fysisk\" niv\u00e5 \u2013 per sidnummer i buffrat minne. <\/p>\n<p><\/p>\n<p>F\u00f6r objekt Cage st\u00f6ds en originell funktion <i>\"dvalande\"<\/i> (\u00abs\u00f6mn\u00bb) \u2013 de kan \"minskas\" (till exempel vid avbrott i kommunikationen med servrar, eller n\u00e4r applikationen st\u00e4ngs av, etc.) i en lokal dumpfil p\u00e5 klientens sida och snabbt \u00e5terst\u00e4llas fr\u00e5n denna fil (efter att kommunikationen \u00e5terupptas, vid omstart av applikationen). Detta ger en betydande minskning av trafiken n\u00e4r klientprogrammet aktiveras efter en tillf\u00e4llig 'offline'-period, eftersom ofta anv\u00e4nda delar av filer redan kommer att finnas i cacheminnet.<\/p>\n<p><\/p>\n<p>Cage \u2014 det handlar om cirka 3600 rader kod.<\/p>\n<p><\/p>\n<h3>Principerna f\u00f6r att bygga servrar<\/h3>\n<p><\/p>\n<p>Filsystemet Cageserver kan k\u00f6ras med ett valfritt antal portar, varav en ('huvudporten') enbart anv\u00e4nds f\u00f6r att autentisera alla kunder, medan de \u00f6vriga anv\u00e4nds f\u00f6r datakommunikation. F\u00f6r Cage-serverprogrammet kr\u00e4vs endast Python. Samtidigt kan datorn med filsservern utf\u00f6ra vilket annat arbete som helst. <\/p>\n<p><\/p>\n<p>Servern startas inledningsvis som en samling av tv\u00e5 grundl\u00e4ggande processer:<\/p>\n<ol>\n<li><b>\"Anslutningar\"<\/b> \u2013 processen f\u00f6r att utf\u00f6ra operationer f\u00f6r att etablera och avsluta anslutningar med klienterna p\u00e5 serverns initiativ;<\/li>\n<li><b>\"Operationer\"<\/b> \u2013 processen f\u00f6r att utf\u00f6ra uppgifter (operationer) fr\u00e5n klienterna ang\u00e5ende filhantering, samt f\u00f6r att st\u00e4nga anslutningar p\u00e5 kunders kommandon.<\/li>\n<\/ol>\n<p><\/p>\n<p>B\u00e5da processerna \u00e4r inte synkroniserade och organiserade som o\u00e4ndliga loopar av meddelandehantering baserat p\u00e5 multiprocessork\u00f6er, proxyobjekt, l\u00e5s och sockets.<br \/>\nProcessen f\u00f6r \"Anslutningar\" tilldelar varje klient en port f\u00f6r data\u00f6verf\u00f6ring. Antalet portar anges vid serverstart. \u00d6verenskommelsen mellan portar och klienter lagras i delat proxyminne mellan processerna.<\/p>\n<p><\/p>\n<p>Processen f\u00f6r \"Operationer\" st\u00f6djer delning av filresurser, vilket g\u00f6r att flera olika kunder kan gemensamt (<i>n\u00e4raparallellt<\/i>, eftersom \u00e5tkomsten styrs av l\u00e5s) l\u00e4sa data fr\u00e5n en fil, om detta har godk\u00e4nts vid den initiala \u00f6ppningen av filen av den \"f\u00f6rsta\" klienten. \n<\/p>\n<p>Behandling av kommandon f\u00f6r skapande\/f\u00e5 bort\/\u00f6ppning\/st\u00e4ngning av filer <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sv\/server\/dts-dronten\/\"   title=\"servern\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2497\">servern<\/a> utf\u00f6rs i sj\u00e4lva processen f\u00f6r \"Operationer\" strikt sekventiellt med hj\u00e4lp av operativsystemets filsystem p\u00e5 servern.<\/p>\n<p><\/p>\n<p>F\u00f6r att \u00f6ka hastigheten f\u00f6r l\u00e4sning\/skrivning utf\u00f6rs dessa operationer i tr\u00e5dar (threads) som skapas av processen \"Operationer\". Antalet tr\u00e5dar \u00e4r vanligtvis lika med antalet \u00f6ppna filer. Uppgifter f\u00f6r l\u00e4sning\/skrivning fr\u00e5n kunder skickas till en gemensam k\u00f6 och den f\u00f6rsta lediga tr\u00e5den plockar upp uppgiften fr\u00e5n k\u00f6ns b\u00f6rjan. Speciell logik m\u00f6jligg\u00f6r att utesluta operationer f\u00f6r \u00f6verskrivning av data i serverns RAM.<\/p>\n<p><\/p>\n<p>Processen \"Operationer\" \u00f6vervakar kundernas aktivitet och avbryter deras tj\u00e4nst b\u00e5de p\u00e5 deras order och n\u00e4r en timeout f\u00f6r inaktivitet \u00f6verskrids.<\/p>\n<p><\/p>\n<p>F\u00f6r att s\u00e4kerst\u00e4lla tillf\u00f6rlitlighet h\u00e5ller Cageserver loggar \u00f6ver alla transaktioner. En gemensam logg inneh\u00e5ller kopior av meddelanden fr\u00e5n kunder med uppgifter f\u00f6r att skapa\/\u00f6ppna\/omd\u00f6pa\/ta bort filer. F\u00f6r varje arbetsfil skapas en separat logg d\u00e4r kopior av meddelanden med uppgifter f\u00f6r l\u00e4sning och skrivning av data i denna arbetsfil registreras, liksom arrayer av skrivna (nya) data och arrayer av data som blev f\u00f6rst\u00f6rda vid \u00f6verskrivning (n\u00e4r nya data skrivs \"\u00f6ver\" gamla). <\/p>\n<p><\/p>\n<p>Dessa loggar ger m\u00f6jlighet att b\u00e5de \u00e5terst\u00e4lla nya \u00e4ndringar i s\u00e4kerhetskopior och att \"\u00e5terg\u00e5\" fr\u00e5n det aktuella inneh\u00e5llet till en \u00f6nskad tidpunkt i det f\u00f6rflutna. <\/p>\n<p><\/p>\n<p>Cageserver best\u00e5r av cirka 3100 kodrader.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Fj\u00e4rrfil\u00e5tkomstsystemet Cage\" src=\"\/wp-content\/uploads\/2019\/08\/606d593347d73274b0c172dae34da0d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Starta programmet filserver Cageserver<\/h3>\n<p><\/p>\n<p>Vid start i dialogen m\u00e5ste du ange:<br \/>\n \u2014 huvudporten f\u00f6r auktorisation;<br \/>\n \u2014 antalet portar f\u00f6r transaktionsutbyte med auktoriserade kunder (fr\u00e5n 1 och fler, poolen av nummer b\u00f6rjar med n\u00e4sta nummer efter huvudportens nummer).<\/p>\n<p><\/p>\n<h3>Anv\u00e4nda klassen Cage<\/h3>\n<p><\/p>\n<p><b>klass<\/b> cage.<b>Cage<\/b>( <i>cage_name=\u00bb\u00bb, pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file=\u00bb\u00bb<\/i> )<\/p>\n<p><\/p>\n<p>Fr\u00e5n denna klass skapas objekt som interagerar med filservrar och inneh\u00e5ller bufferminnet.<\/p>\n<p><\/p>\n<p><b><u>Parametrar<\/u><\/b><\/p>\n<p><\/p>\n<ul>\n<li> <b>cage_name<\/b>(<i>str<\/i>) \u2014 det vill s\u00e4ga ett namn f\u00f6r objektet som anv\u00e4nds vid identifiering av kunder p\u00e5 serverns sida <\/li>\n<li> <b>pagesize<\/b>(<i>int<\/i>) \u2014 storleken p\u00e5 en sidbuffert (i bytes)<\/li>\n<li> <b>numpages<\/b>(<i>int<\/i>) \u2014 antalet sidor i bufferminnet<\/li>\n<li> <b>maxstrlen<\/b>(<i>int<\/i>) \u2014 maximal l\u00e4ngd p\u00e5 byte-str\u00e4ngen i l\u00e4s- och skrivoperationer<\/li>\n<li> <b>server_ip<\/b>(<i>dict<\/i>) \u2014 en ordbok med adresser som anv\u00e4nds <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/sv\/server\/\"   title=\"servrar\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1347\">servrar<\/a>, d\u00e4r nyckeln \u00e4r det villkorliga servernamnet (server-ID i applikationen) och v\u00e4rdet \u00e4r en str\u00e4ng med adress: \u201cip address:port\u201d eller \u201cDNS:port\u201d (mappning av namn och verkliga adresser \u00e4r tempor\u00e4rt, det kan \u00e4ndras)<\/li>\n<li> <b>v\u00e4nta<\/b>(<i>int<\/i>) \u2013 svarstid fr\u00e5n servern vid mottagning av portar (i sek.)<\/li>\n<li> <b>vakna<\/b>(<i>boolean<\/i>) \u2013 flagga f\u00f6r hur objektet skapas (<i>Falskt<\/i> \u2013 om ett nytt objekt skapas, <i>Sant<\/i> \u2013 om objektet skapas fr\u00e5n ett tidigare \u201cvilande\u201d \u2013 genom operationen \u201chibernation\u201d, som standard Falskt)<\/li>\n<li> <b>cache_file<\/b>(<i>str<\/i>) \u2013 namn p\u00e5 filen f\u00f6r hibernation<\/li>\n<\/ul>\n<p><\/p>\n<p><b><u>Metoder<\/u><\/b><\/p>\n<p><\/p>\n<p>Cage.<b>file_create<\/b>( <i>server, path<\/i> ) \u2013 skapa en ny fil<\/p>\n<p><\/p>\n<p>Cage.<b>file_rename<\/b>( <i>server, path, new_name<\/i> ) \u2013 d\u00f6p om filen<\/p>\n<p><\/p>\n<p>Cage.<b>file_remove<\/b>( <i>server, path<\/i>) \u2013 ta bort filen<\/p>\n<p><\/p>\n<p>Cage.<b>open<\/b>( <i>server, path, mod <\/i>) \u2013 \u00f6ppna filen<\/p>\n<p><\/p>\n<p>Returnerar <i>fchannel<\/i> kanalens nummer. Parametern <i>mod<\/i> \u2013 detta \u00e4r mod f\u00f6r att \u00f6ppna filen: 'wm' \u2013 monopol (l\u00e4sning\/skrivning), 'rs' \u2013 endast l\u00e4sning, och delad endast f\u00f6r l\u00e4sning av andra klienter, 'ws' \u2013 l\u00e4sning\/skrivning, och delad endast f\u00f6r l\u00e4sning av andra klienter. <\/p>\n<p><\/p>\n<p>Cage.<b>st\u00e4ng<\/b> (<i>fchannel<\/i>) \u2013 st\u00e4ng filen<\/p>\n<p><\/p>\n<p>Cage.<b>skriv <\/b>(<i>fchannel, begin, data <\/i>) \u2013 skriv en byte-str\u00e4ng till filen<\/p>\n<p><\/p>\n<p>Cage.<b>l\u00e4s <\/b>(<i>fchannel, begin, len_data<\/i> ) \u2013 l\u00e4s en byte-str\u00e4ng fr\u00e5n filen<\/p>\n<p><\/p>\n<p>Cage.<b>put_pages <\/b>( <i>fchannel<\/i> ) \u2013 \u2018skickar\u2019 ut fr\u00e5n bufferten till servern alla sidor i den angivna kanalen som har modifierats. Anv\u00e4nds vid de punkter i algoritmen n\u00e4r det \u00e4r n\u00f6dv\u00e4ndigt att vara s\u00e4ker p\u00e5 att alla operationer p\u00e5 kanalen fysiskt har sparats i filen p\u00e5 servern.<\/p>\n<p><\/p>\n<p>Cage.<b>push_all<\/b> () \u2013 \u2018skickar\u2019 ut fr\u00e5n bufferten till servern alla sidor i alla kanaler f\u00f6r instansen av klassen Cage som har modifierats. Anv\u00e4nds n\u00e4r det \u00e4r n\u00f6dv\u00e4ndigt att vara s\u00e4ker p\u00e5 att alla operationer p\u00e5 alla kanaler har sparats p\u00e5 servern.<\/p>\n<p>K\u00e4lla: <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.4 - 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\/sv\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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\udd47System f\u00f6r fj\u00e4rr\u00e5tkomst till filer Cage | ProHoster","description":"Syftet med systemet \u00e4r att st\u00f6dja fj\u00e4rr\u00e5tkomst till filer p\u00e5 datorer i n\u00e4tverket.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/37019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=37019"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/37019\/revisions"}],"predecessor-version":[{"id":159779,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/37019\/revisions\/159779"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/27748"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=37019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=37019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=37019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}