{"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\/nl\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","title":{"rendered":"Cage bestands toegangssysteem","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>Doel van het systeem<\/h3>\n<p><\/p>\n<p>Ondersteuning voor externe toegang tot bestanden op computers in het netwerk. Het systeem ondersteunt \u2018virtueel\u2019 alle belangrijke bestandsoperaties (aanmaken, verwijderen, lezen, schrijven, enz.) door transacties (berichten) uit te wisselen via het TCP-protocol.<\/p>\n<p><\/p>\n<h3>Toepassingsgebieden<\/h3>\n<p><\/p>\n<p>De functionaliteit van het systeem is effectief in de volgende gevallen:<\/p>\n<ul>\n<li> in native applicaties voor mobiele en embedded apparaten (smartphones, boordbeheersystemen, enz.), die snelle toegang tot bestanden op externe servers vereisen onder omstandigheden van mogelijke tijdelijke verbindingsonderbrekingen (offline gaan);<\/li>\n<li> in zwaarbelaste databasebeheersystemen, wanneer de verwerking van verzoeken op de ene server plaatsvindt en de opslag van gegevens op een andere;<\/li>\n<li> in gedistribueerde bedrijfsnetwerken voor het verzamelen en verwerken van informatie, die hoge dataverkeer snelheid, redundantie en betrouwbaarheid vereisen;<\/li>\n<li> in complexe systemen met microservices-architectuur, waar vertragingen in de informatie-uitwisseling tussen modules van cruciaal belang zijn.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex> <\/p>\n<h3>Structuur<\/h3>\n<p><\/p>\n<p>Het Cage-systeem (er is een implementatie \u2014 beta-versie op Python 3.7 in Windows OS) omvat twee hoofdcomponenten: <\/p>\n<ol>\n<li> <b>Cageserver<\/b> \u2014 een bestandserverprogramma (functionaliteitspakket), dat op computers in het netwerk wordt uitgevoerd waarvan de bestanden externe toegang vereisen;<\/li>\n<li> klasse <b>Cage<\/b> met een bibliotheek van methoden voor clientsoftware die de codering van interactie met servers vereenvoudigt.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Gebruik van het systeem aan de klantzijde<\/h3>\n<p><\/p>\n<p>De methoden van de Cage-klasse vervangen de gebruikelijke, \u2018routine\u2019 bestandsoperaties: <i>aanmaken, openen, afsluiten, verwijderen <\/i>van bestanden, evenals <i>lezen\/schrijven van gegevens in binaire vorm<\/i> (met vermelding van positie en grootte van de gegevens). Conceptueel zijn deze methoden vergelijkbaar met de bestandsfuncties van de C-taal, waar bestanden \u2018over kanalen\u2019 van invoer-uitvoer worden geopend\/afgesloten. <\/p>\n<p><\/p>\n<p>Met andere woorden, de programmeur werkt niet met de methoden van \u2018bestands\u2019-objecten (klasse <b>_io<\/b> in Python), maar met de methoden van de Cage-klasse.<\/p>\n<p><\/p>\n<p>Bij het maken van een instantie van een Cage-object wordt een initi\u00eble verbinding met de server (of meerdere servers) tot stand gebracht, wordt authenticatie op basis van klant-ID doorlopen en wordt een bevestiging ontvangen met het nummer van de toegewezen poort voor het uitvoeren van alle bestandsoperaties. Bij het verwijderen van een Cage-object geeft het een commando aan de server om de verbinding te be\u00ebindigen en de bestanden te sluiten. De verbinding kan ook worden be\u00ebindigd door de servers zelf.<\/p>\n<p><\/p>\n<p>Het systeem verbetert de lees- en schrijfsnelheid door vaak gebruikte bestandsgedeelten in het cache-geheugen (buffer) van de clienttoepassingen te bufferen.<br \/>\nDe clientsoftware kan een onbeperkt aantal Cage-objecten gebruiken met verschillende instellingen (buffergeheugen, blokgrootte bij communicatie met de server, enz.). <\/p>\n<p><\/p>\n<p>\u00c9\u00e9n Cage-object kan gegevens uitwisselen met meerdere bestanden op verschillende servers. De parameters voor de verbinding (IP-adres of DNS van de server, hoofdpoort voor autorisatie, pad en bestandsnaam) worden ingesteld bij het aanmaken van het object.<\/p>\n<p><\/p>\n<p>Aangezien elk Cage-object gelijktijdig met meerdere bestanden kan werken, wordt er gebruikgemaakt van een gedeelde geheugenspace voor buffering. De grootte van de cache \u2013 het aantal pagina's en hun grootte \u2013 wordt dynamisch vastgesteld bij het aanmaken van het Cage-object. Bijvoorbeeld, een cache van 1 GB bestaat uit 1000 pagina's van 1 MB, of 10.000 pagina's van 100 KB, of 1 miljoen pagina's van 1 KB. De keuze van de grootte en het aantal pagina's is een specifieke taak voor elke toepassingscasus.<\/p>\n<p><\/p>\n<p>Er kunnen tegelijkertijd meerdere Cage-objecten worden gebruikt om verschillende instellingen voor het buffergeheugen te bepalen, afhankelijk van de kenmerken van de toegang tot informatie in verschillende bestanden. Als basis wordt een eenvoudig bufferingsalgoritme gebruikt: nadat de opgegeven geheugengrootte is bereikt, verdringen nieuwe pagina's oude op basis van de regel van eliminatie met het minste aantal toegangspunten. Buffering is bijzonder effectief bij ongelijkmatige (statistisch gezien) gelijktijdige toegang tot verschillende bestanden, en, ten tweede, tot fragmenten van elk bestand. <\/p>\n<p><\/p>\n<p>De Cage-klasse ondersteunt I\/O niet alleen op gegevensadressen (met vermelding van positie en lengte van de array, 'vervangend' voor bestandsfuncties), maar ook op een lager, 'fysiek' niveau \u2013 op basis van paginanummers in het buffergeheugen. <\/p>\n<p><\/p>\n<p>Voor Cage-objecten wordt de originele functie ondersteund <i>\u2018hibernatie\u2019<\/i> (\u00absnu\u00bb) \u2013 deze kunnen worden \u00abingevouwen\u00bb (bijvoorbeeld in het geval van een onderbreking van de verbinding met de servers, of bij het stoppen van de applicatie, enz.) in een lokale dump-bestand aan de zijde van de klant en snel worden hersteld uit dit bestand (na het herstellen van de verbinding, bij het opnieuw starten van de applicatie). Dit stelt ons in staat om de traffic aanzienlijk te verminderen wanneer de client-applicatie weer actief wordt na een tijdelijke \u00aboffline\u00bb periode, aangezien vaak gebruikte bestandfragmenten zich al in de cache bevinden.<\/p>\n<p><\/p>\n<p>Cage \u2014 dit is ongeveer 3600 regels code.<\/p>\n<p><\/p>\n<h3>Principes voor het bouwen van servers<\/h3>\n<p><\/p>\n<p>Cageserver-bestandservers kunnen worden gestart met een willekeurig aantal poorten, waarvan \u00e9\u00e9n (\u2018hoofd\u2019) alleen wordt gebruikt voor de autorisatie van alle klanten, en de andere voor gegevensuitwisseling. Voor het Cage-serverprogramma is alleen Python vereist. Tegelijkertijd kan de computer met de bestandserver elke andere taak uitvoeren. <\/p>\n<p><\/p>\n<p>De server wordt aanvankelijk opgestart als een combinatie van twee hoofprocessen:<\/p>\n<ol>\n<li><b>\u00abVerbindingen\u00bb<\/b> \u2013 het proces voor het uitvoeren van verbindingsoprichtingsoperaties met klanten en hun be\u00ebindiging op initiatief van de server;<\/li>\n<li><b>\u00abOperaties\u00bb<\/b> \u2013 het proces voor het uitvoeren van taken (operaties) van klanten met bestanden, evenals voor het afsluiten van verbindingssessies op verzoek van klanten.<\/li>\n<\/ol>\n<p><\/p>\n<p>Beide processen zijn niet gesynchroniseerd en zijn georganiseerd als eindeloze lussen voor het ontvangen en verzenden van berichten op basis van multiprocess-queues, proxy-objecten, locks en sockets.<br \/>\nHet \u00abVerbindings\u00bb-proces wijst elke klant een poort toe voor gegevensoverdracht. Het aantal poorten wordt ingesteld bij het starten van de server. De overeenkomst tussen poorten en klanten wordt opgeslagen in gedeeld proxy-geheugen.<\/p>\n<p><\/p>\n<p>Het \u00abOperaties\u00bb-proces ondersteunt de deling van bestandsresources, waarbij meerdere verschillende klanten samen (<i>quasi-parallel<\/i>, omdat de toegang wordt beheerd door locks) gegevens uit \u00e9\u00e9n bestand kunnen lezen, als dit was toegestaan bij de eerste opening door de \u2018eerste\u2019 klant. \n<\/p>\n<p>Het verwerken van commando's voor het aanmaken\/verwijderen\/openen\/sluiten van bestanden op <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/nl\/server\/dts-dronten\/\"   title=\"de server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2497\">de server<\/a> gebeurt in het \u00abOperaties\u00bb-proces strikt sequentieel met behulp van het besturingssysteem van de server.<\/p>\n<p><\/p>\n<p>Om het algemene lezen\/schrijven te versnellen, worden deze bewerkingen uitgevoerd in threads die door het proces 'Operaties' worden gegenereerd. Het aantal threads is meestal gelijk aan het aantal geopende bestanden. Lezen\/schrijven opdrachten van klanten worden in een gezamenlijke wachtrij geplaatst en de eerste vrijgegeven thread pakt de opdracht van de kop. Speciale logica maakt het mogelijk om data-hersoverwriting in het RAM van de server uit te sluiten.<\/p>\n<p><\/p>\n<p>Het proces 'Operaties' houdt toezicht op de activiteit van klanten en stopt hun dienstverlening zowel op hun commando als bij het overschrijden van de inactiviteitstimer.<\/p>\n<p><\/p>\n<p>Om de betrouwbaarheid te waarborgen, houdt Cageserver logs van alle transacties bij. Een gezamenlijke log bevat kopie\u00ebn van berichten van klanten met opdrachten voor het aanmaken\/openen\/hernoemen\/verwijderen van bestanden. Voor elk werkend bestand wordt een aparte log aangemaakt waarin kopie\u00ebn van berichten met opdrachten voor het lezen en schrijven van gegevens in dat werkbestand worden bijgehouden, evenals arrays van geschreven (nieuwe) gegevens en arrays van gegevens die verloren zijn gegaan bij heroverschrijving (schrijven van nieuwe gegevens 'over' oude). <\/p>\n<p><\/p>\n<p>Deze logs bieden de mogelijkheid om zowel nieuwe wijzigingen in back-ups te herstellen als om terug te rollen van de huidige inhoud naar een gewenst moment in het verleden. <\/p>\n<p><\/p>\n<p>Cageserver bestaat uit ongeveer 3100 regels code.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Cage bestands toegangssysteem\" src=\"\/wp-content\/uploads\/2019\/08\/606d593347d73274b0c172dae34da0d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Het starten van het Cageserver bestandserverprogramma<\/h3>\n<p><\/p>\n<p>Bij de start moet het volgende worden bepaald:<br \/>\n \u2014 de hoofdpoort voor autorisatie;<br \/>\n \u2014 het aantal poorten voor transactiewisseling met geautoriseerde klanten (vanaf 1 of meer, de pool van nummers begint met het volgende nummer na het hoofpoortnummer).<\/p>\n<p><\/p>\n<h3>Gebruik van de Cage-klasse<\/h3>\n<p><\/p>\n<p><b>klasse<\/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>Uit deze klasse worden objecten gecre\u00eberd die interactie hebben met bestandservers en geheugenbuffers bevatten.<\/p>\n<p><\/p>\n<p><b><u>Instellingen<\/u><\/b><\/p>\n<p><\/p>\n<ul>\n<li> <b>cage_name<\/b>(<i>str<\/i>) \u2014 de voorwaardelijke naam van het object, die wordt gebruikt bij de identificatie van klanten aan de serverzijde <\/li>\n<li> <b>pagesize<\/b>(<i>int<\/i>) \u2014 de grootte van \u00e9\u00e9n pagina in de geheugenbuffer (in bytes)<\/li>\n<li> <b>numpages<\/b>(<i>int<\/i>) \u2014 het aantal pagina's in de geheugenbuffer<\/li>\n<li> <b>maxstrlen<\/b>(<i>int<\/i>) \u2014 de maximale lengte van een byte-string in lees- en schrijfoperaties<\/li>\n<li> <b>server_ip<\/b>(<i>dict<\/i>) \u2014 een woordenboek met de gebruikte adressen <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/nl\/server\/\"   title=\"servers\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1347\">servers<\/a>, waarbij de sleutel de voorwaardelijke naam van de server is (server-id binnen de applicatie), en de waarde een string met het adres: \u201cip-adres:poort\u201d of \u201cDNS:poort\u201d (de mapping van namen en werkelijke adressen is tijdelijk en kan worden gewijzigd)<\/li>\n<li> <b>wachten<\/b>(<i>int<\/i>) \u2013 de wachttijd voor een antwoord van de server bij het ontvangen van poorten (in sec.)<\/li>\n<li> <b>wakker<\/b>(<i>boolean<\/i>) \u2013 een vlag voor de methode van objectcreatie (<i>False<\/i> \u2013 als er een nieuw object wordt aangemaakt, <i>Waar<\/i> \u2013 als het object wordt aangemaakt vanuit een eerder \u2018ingevroren\u2019 \u2014 door het toepassen van de \u2018hibernatie\u2019-bewerking, standaard is Onwaar)<\/li>\n<li> <b>cache_bestand<\/b>(<i>str<\/i>) \u2013 de naam van het bestand voor hibernatie<\/li>\n<\/ul>\n<p><\/p>\n<p><b><u>Methoden<\/u><\/b><\/p>\n<p><\/p>\n<p>Cage.<b>bestand_aangemaakt<\/b>( <i>server, pad<\/i> ) \u2013 een nieuw bestand aanmaken<\/p>\n<p><\/p>\n<p>Cage.<b>bestand_hernoemen<\/b>( <i>server, pad, nieuwe_naam<\/i> ) \u2013 bestand hernoemen<\/p>\n<p><\/p>\n<p>Cage.<b>bestand_verwijderen<\/b>( <i>server, pad<\/i>) \u2013 bestand verwijderen<\/p>\n<p><\/p>\n<p>Cage.<b>open<\/b>( <i>server, pad, mod <\/i>) \u2013 bestand openen<\/p>\n<p><\/p>\n<p>Geeft terug <i>fchannel<\/i> kanaalnummer. De parameter <i>mod<\/i> \u2013 dit is de modus voor het openen van het bestand: \u00abwm\u00bb \u2014 exclusief (lezen\/schrijven), \u00abrs\u00bb \u2014 alleen lezen, en gedeeld alleen voor lezen door andere clients, \u00abws\u00bb \u2014 lezen\/schrijven, en gedeeld alleen voor lezen door andere clients. <\/p>\n<p><\/p>\n<p>Cage.<b>sluiten<\/b> (<i>fchannel<\/i>) \u2013 bestand sluiten<\/p>\n<p><\/p>\n<p>Cage.<b>write <\/b>(<i>fchannel, begin, data <\/i>) \u2013 schrijf een byte-string naar het bestand<\/p>\n<p><\/p>\n<p>Cage.<b>read <\/b>(<i>fchannel, begin, len_data<\/i> ) \u2013 lees een byte-string uit het bestand<\/p>\n<p><\/p>\n<p>Cage.<b>zet_paginas <\/b>( <i>fchannel<\/i> ) \u2013 \u2018stoot\u2019 alle pagina\u2019s van de opgegeven kanaal uit de buffer naar de server die zijn gewijzigd. Wordt op die punten in het algoritme gebruikt waar je zeker wilt zijn dat alle operaties op het kanaal fysiek zijn opgeslagen in het bestand op de server.<\/p>\n<p><\/p>\n<p>Cage.<b>duwen_alles<\/b> () \u2013 \u2018stoot\u2019 alle pagina\u2019s van alle kanalen voor een instantie van de klasse Cage uit de buffer naar de server die zijn gewijzigd. Wordt gebruikt wanneer je zeker wilt zijn dat alle operaties op alle kanalen zijn opgeslagen op de server.<\/p>\n<p>Bron: <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\/nl\/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=\"nl_NL\" \/>\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\/nl\/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\udd47Systeem voor externe bestandstoegang Cage | ProHoster","description":"Doel van het systeem Ondersteuning voor externe toegang tot bestanden op computers in het netwerk.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/37019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=37019"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/37019\/revisions"}],"predecessor-version":[{"id":159779,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/37019\/revisions\/159779"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/27748"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=37019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=37019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=37019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}