{"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\/de\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","title":{"rendered":"Das System f\u00fcr den Remote-Dateizugriff Cage","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h3>Zweck des Systems<\/h3>\n<p><\/p>\n<p>Unterst\u00fctzung des Remote-Zugriffs auf Dateien auf Computern im Netzwerk. Das System unterst\u00fctzt \u201evirtuell\u201c alle wichtigen Dateioperationen (Erstellung, L\u00f6schung, Lesen, Schreiben usw.) durch den Austausch von Transaktionen (Nachrichten) \u00fcber das TCP-Protokoll.<\/p>\n<p><\/p>\n<h3>Anwendungsbereiche<\/h3>\n<p><\/p>\n<p>Die Funktionalit\u00e4t des Systems ist in folgenden F\u00e4llen effektiv:<\/p>\n<ul>\n<li> in nativen Anwendungen f\u00fcr mobile und eingebettete Ger\u00e4te (Smartphones, Bordsteuerungssysteme usw.), die schnellen Zugriff auf Dateien auf entfernten Servern erfordern, insbesondere unter Bedingungen, die vor\u00fcbergehende Unterbrechungen der Verbindung (Offline-Nutzung) nach sich ziehen;<\/li>\n<li> in stark belasteten DBMS, wenn die Verarbeitung von Anfragen auf einem Server erfolgt, w\u00e4hrend die Datenspeicherung auf einem anderen stattfindet;<\/li>\n<li> in verteilten Unternehmensnetzwerken zur Erfassung und Verarbeitung von Informationen, die eine hohe Datenaustauschgeschwindigkeit, Redundanz und Zuverl\u00e4ssigkeit erfordern;<\/li>\n<li> in komplexen Systemen mit Mikrodiensten, wo Verz\u00f6gerungen im Austausch von Informationen zwischen Modulen von entscheidender Bedeutung sind.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex> <\/p>\n<h3>Struktur<\/h3>\n<p><\/p>\n<p>Das Cage-System (eine Implementierung \u2013 Beta-Version auf Python 3.7 unter Windows) umfasst zwei Hauptteile: <\/p>\n<ol>\n<li> <b>Cageserver<\/b> \u2013 ein Programm f\u00fcr Datei-Server (Funktionspaket), das auf Computern im Netzwerk ausgef\u00fchrt wird, auf deren Dateien ein Remote-Zugriff erforderlich ist;<\/li>\n<li> Klasse <b>Cage<\/b> mit einer Bibliothek von Methoden f\u00fcr Client-Software, die die Kodierung der Interaktion mit Servern vereinfacht.<\/li>\n<\/ol>\n<p><\/p>\n<h3>Verwendung des Systems auf der Client-Seite<\/h3>\n<p><\/p>\n<p>Die Methoden der Klasse Cage ersetzen die gew\u00f6hnlichen, \u201eroutinehaften\u201c Operationen des Dateisystems: <i>Erstellung, \u00d6ffnen, Schlie\u00dfen, L\u00f6schen <\/i>von Dateien sowie <i>lesen\/schreiben von Daten im bin\u00e4ren Format<\/i> (unter Angabe der Position und Gr\u00f6\u00dfe der Daten). Konzeptuell sind diese Methoden den Datei-Funktionen der Programmiersprache C \u00e4hnlich, wo das \u00d6ffnen\/Schlie\u00dfen von Dateien \u201e\u00fcber Kan\u00e4le\u201c f\u00fcr Ein- und Ausgabe erfolgt. <\/p>\n<p><\/p>\n<p>Mit anderen Worten, der Programmierer arbeitet nicht mit den Methoden von \u201eDatei\u201c-Objekten (Klasse <b>_io<\/b> in Python), sondern mit den Methoden der Klasse Cage.<\/p>\n<p><\/p>\n<p>Bei der Erstellung einer Instanz des Objekts Cage wird eine initiale Verbindung zum Server (oder mehreren Servern) hergestellt, die Autorisierung mittels Client-ID durchgef\u00fchrt und eine Best\u00e4tigung mit der Nummer des reservierten Ports f\u00fcr alle Dateioperationen empfangen. Beim L\u00f6schen des Cage-Objekts gibt es dem Server den Befehl, die Verbindung zu beenden und die Dateien zu schlie\u00dfen. Die Beendigung der Verbindung kann auch von den Servern selbst initiiert werden.<\/p>\n<p><\/p>\n<p>Das System erh\u00f6ht die Lese-\/Schreibgeschwindigkeit durch das Caching h\u00e4ufig verwendeter Dateiabschnitte in den Client-Programmen im Arbeitsspeicher (Puffer).<br \/>\nDie Client-Software kann beliebig viele Cage-Objekte mit unterschiedlichen Einstellungen (Speichervolumen, Blockgr\u00f6\u00dfe beim Austausch mit dem Server usw.) verwenden. <\/p>\n<p><\/p>\n<p>Ein Cage-Objekt kann Daten mit mehreren Dateien auf mehreren Servern austauschen. Die Parameter f\u00fcr die Verbindung (IP-Adresse oder DNS-Server, Hauptport f\u00fcr die Autorisierung, Pfad und Dateiname) werden bei der Erstellung des Objekts festgelegt.<\/p>\n<p><\/p>\n<p>Da jedes Cage-Objekt gleichzeitig mit mehreren Dateien arbeiten kann, wird daf\u00fcr ein gemeinsamer Speicherbereich f\u00fcr das Caching verwendet. Die Gr\u00f6\u00dfe des Caches \u2013 die Anzahl der Seiten und deren Gr\u00f6\u00dfe \u2013 wird dynamisch bei der Erstellung des Cage-Objekts festgelegt. Zum Beispiel ist ein 1 GB Cache 1000 Seiten zu 1 MB, oder 10.000 Seiten zu 100 KB, oder 1 Million Seiten zu 1 KB. Die Auswahl der Gr\u00f6\u00dfe und Anzahl der Seiten ist eine spezifische Aufgabe f\u00fcr jeden Anwendungsfall.<\/p>\n<p><\/p>\n<p>Es k\u00f6nnen mehrere Cage-Objekte gleichzeitig verwendet werden, um unterschiedliche Pufferungseinstellungen je nach Zugriffsmerkmalen auf Informationen in verschiedenen Dateien festzulegen. Als Basis wird ein einfachster Pufferungsalgorithmus verwendet: Nach Ersch\u00f6pfung des festgelegten Speichervolumens verdr\u00e4ngen neue Seiten die alten nach dem Prinzip der minimalen Zugriffsanzahl. Die Pufferung ist besonders effektiv bei ungleichm\u00e4\u00dfigem (statistisch gesehen) gleichzeitigen Zugriff, erstens auf verschiedene Dateien und zweitens auf Abschnitte jeder Datei. <\/p>\n<p><\/p>\n<p>Die Klasse Cage unterst\u00fctzt Ein- und Ausgabe nicht nur anhand von Datenadressen (mit Angabe der Position und L\u00e4nge des Arrays, wodurch sie die Dateioperationssysteme \"ersetzt\"), sondern auch auf einer niedrigeren, \"physikalischen\" Ebene \u2013 anhand von Seitennummern im Arbeitsspeicher. <\/p>\n<p><\/p>\n<p>F\u00fcr Cage-Objekte wird die originale Funktion unterst\u00fctzt <i>\"Hibernate\"<\/i> (\u201eSchlaf\u201c) \u2013 sie k\u00f6nnen \u201ezusammengefasst\u201c werden (zum Beispiel im Falle eines Verbindungsabbruchs zu den Servern oder beim Stoppen der Anwendung usw.) in eine lokale Dump-Datei auf der Client-Seite und schnell aus dieser Datei wiederhergestellt werden (nach Wiederherstellung der Verbindung, beim erneuten Start der Anwendung). Dies erm\u00f6glicht eine erhebliche Reduzierung des Datenverkehrs, wenn das Client-Programm nach einer tempor\u00e4ren \u201eOffline\u201c-Phase wieder aktiviert wird, da h\u00e4ufig verwendete Dateifragemente bereits im Cache vorhanden sein werden.<\/p>\n<p><\/p>\n<p>Cage ist ungef\u00e4hr 3600 Zeilen Code.<\/p>\n<p><\/p>\n<h3>Prinzipien des Serveraufbaus<\/h3>\n<p><\/p>\n<p>Cageserver-Dateiserver k\u00f6nnen mit einer beliebigen Anzahl von Ports gestartet werden, von denen einer (\u201ehaupts\u00e4chlich\u201c) nur f\u00fcr die Authentifizierung aller Clients verwendet wird, w\u00e4hrend die anderen f\u00fcr den Datenaustausch dienen. Die Cage-Serveranwendung ben\u00f6tigt nur Python. Gleichzeitig kann der Computer mit dem Datei-Server jede andere Arbeit ausf\u00fchren. <\/p>\n<p><\/p>\n<p>Der Server wird zun\u00e4chst als Kombination aus zwei Hauptprozessen gestartet:<\/p>\n<ol>\n<li><b>\u201eVerbindungen\u201c<\/b> \u2013 ein Prozess zur Durchf\u00fchrung von Verbindungsherstellungen mit Clients und deren Beendigung auf Initiative des Servers;<\/li>\n<li><b>\u201eOperationen\u201c<\/b> \u2013 ein Prozess zur Durchf\u00fchrung von Auftr\u00e4gen (Operationen) der Clients im Umgang mit Dateien sowie zum Schlie\u00dfen von Verbindungssitzungen auf Anweisung der Clients.<\/li>\n<\/ol>\n<p><\/p>\n<p>Beide Prozesse sind nicht synchronisiert und organisiert als endlose Schleifen zum Empfang und Versand von Nachrichten auf Basis multiprozessualer Warteschlangen, Proxy-Objekten, Sperren und Sockets.<br \/>\nDer Prozess \u201eVerbindungen\u201c weist jedem Client einen Port f\u00fcr den Datenempfang und -versand zu. Die Anzahl der Ports wird beim Starten des Servers festgelegt. Die Zuordnung zwischen Ports und Clients wird im zwischen den Prozessen geteilten Proxy-Speicher gespeichert.<\/p>\n<p><\/p>\n<p>Der Prozess \u201eOperationen\u201c unterst\u00fctzt die Teilung der Dateiresourcen, wobei mehrere verschiedene Clients gleichzeitig (<i>quasi-parallel<\/i>, da der Zugriff \u00fcber Sperren gesteuert wird) Daten aus einer Datei lesen k\u00f6nnen, sofern dies beim anf\u00e4nglichen \u00d6ffnen durch den \u201eersten\u201c Client genehmigt wurde. \n<\/p>\n<p>Die Verarbeitung von Befehlen zum Erstellen\/L\u00f6schen\/\u00d6ffnen\/Schlie\u00dfen von Dateien <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/server\/dts-dronten\/\"   title=\"Server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2497\">Server<\/a> erfolgt im Prozess \u201eOperationen\u201c streng sequenziell unter Verwendung des Dateisystems des Server-Betriebssystems.<\/p>\n<p><\/p>\n<p>Um die allgemeine Geschwindigkeit von Lese-\/Schreibvorg\u00e4ngen zu erh\u00f6hen, werden diese Operationen in Threads durchgef\u00fchrt, die vom Prozess \u201eOperationen\u201c erzeugt werden. Die Anzahl der Threads entspricht in der Regel der Anzahl der ge\u00f6ffneten Dateien. Lese-\/Schreibauftr\u00e4ge von Kunden werden in eine gemeinsame Warteschlange eingereicht, und der erste verf\u00fcgbare Thread nimmt den Auftrag vom Kopf der Warteschlange an. Eine spezielle Logik erm\u00f6glicht es, Daten\u00fcberschreibungen im Arbeitsspeicher des Servers auszuschlie\u00dfen.<\/p>\n<p><\/p>\n<p>Der Prozess \u201eOperationen\u201c \u00fcberwacht die Aktivit\u00e4t der Kunden und stellt deren Bedienung sowohl auf deren Anforderung als auch bei \u00dcberschreitung des Zeitlimits f\u00fcr Inaktivit\u00e4t ein.<\/p>\n<p><\/p>\n<p>Um die Zuverl\u00e4ssigkeit sicherzustellen, f\u00fchrt Cageserver Protokolle \u00fcber alle Transaktionen. Ein allgemeines Protokoll enth\u00e4lt Kopien der Nachrichten von Kunden mit Auftr\u00e4gen zum Erstellen, \u00d6ffnen, Umbenennen und L\u00f6schen von Dateien. F\u00fcr jede Arbeitsdatei wird ein separates Protokoll erstellt, in dem Kopien von Nachrichten mit Auftr\u00e4gen zum Lesen und Schreiben von Daten in dieser Arbeitsdatei sowie Arrays der geschriebenen (neuen) Daten und Arrays von Daten, die beim \u00dcberschreiben (Speichern neuer Daten \u201e\u00fcber\u201c alten) gel\u00f6scht wurden, aufgezeichnet werden. <\/p>\n<p><\/p>\n<p>Diese Protokolle erm\u00f6glichen sowohl die Wiederherstellung neuer \u00c4nderungen aus Sicherungskopien als auch das \u201eRollback\u201c des aktuellen Inhalts zu einem gew\u00fcnschten Zeitpunkt in der Vergangenheit. <\/p>\n<p><\/p>\n<p>Cageserver besteht aus etwa 3100 Zeilen Code.<\/p>\n<p>\n<img decoding=\"async\" alt=\"Das System f\u00fcr den Remote-Dateizugriff Cage\" src=\"\/wp-content\/uploads\/2019\/08\/606d593347d73274b0c172dae34da0d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Starten des Datei-Servers Cageserver<\/h3>\n<p><\/p>\n<p>Beim Starten im Dialog muss Folgendes festgelegt werden:<br \/>\n \u2014 der Hauptport f\u00fcr die Autorisierung;<br \/>\n \u2014 die Anzahl der Ports f\u00fcr den Austausch von Transaktionen mit autorisierten Kunden (ab mindestens einem, der Pool von Nummern beginnt mit der Nummer nach dem Hauptport).<\/p>\n<p><\/p>\n<h3>Verwendung der Klasse Cage<\/h3>\n<p><\/p>\n<p><b>class<\/b> cage.<b>Cage<\/b>( <i>cage_name=&lt;&lt;, pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file=&lt;&lt;<\/i> )<\/p>\n<p><\/p>\n<p>Aus dieser Klasse werden Objekte erstellt, die die Interaktion mit Datei-Servern erm\u00f6glichen und \u00fcber Pufferspeicher verf\u00fcgen.<\/p>\n<p><\/p>\n<p><b><u>Parameter<\/u><\/b><\/p>\n<p><\/p>\n<ul>\n<li> <b>cage_name<\/b>(<i>str<\/i>) \u2014 der bedingte Name des Objekts, der bei der Identifizierung von Kunden auf der Serverseite verwendet wird <\/li>\n<li> <b>pagesize<\/b>(<i>int<\/i>) \u2014 die Gr\u00f6\u00dfe einer Seite im Pufferspeicher (in Bytes)<\/li>\n<li> <b>numpages<\/b>(<i>int<\/i>) \u2014 die Anzahl der Seiten im Pufferspeicher<\/li>\n<li> <b>maxstrlen<\/b>(<i>int<\/i>) \u2014 die maximale L\u00e4nge der Byte-Zeichenfolge bei Lese- und Schreiboperationen<\/li>\n<li> <b>server_ip<\/b>(<i>dict<\/i>) \u2014 ein W\u00f6rterbuch mit den verwendeten Adressen <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/server\/\"   title=\"Server\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1347\">Server<\/a>, wo der Schl\u00fcssel der bedingte Name des Servers (Server-ID innerhalb der Anwendung) ist und der Wert eine Zeichenfolge mit der Adresse ist: \u201cip-Adresse:port\u201d oder \u201cDNS:port\u201d (die Zuordnung von Namen und realen Adressen ist vor\u00fcbergehend und kann ge\u00e4ndert werden)<\/li>\n<li> <b>warte<\/b>(<i>int<\/i>) \u2014 die Wartezeit auf eine Antwort vom Server beim Empfang der Ports (in Sek.)<\/li>\n<li> <b>wach<\/b>(<i>boolean<\/i>) \u2014 das Flag f\u00fcr die Art und Weise, wie das Objekt erstellt wird (<i>Falsch<\/i> \u2014 wenn ein neues Objekt erstellt wird, <i>Wahr<\/i> \u2014 wenn das Objekt aus einem zuvor \u00abreduzierten\u00bb Zustand erstellt wird \u2014 durch Anwendung der Operation \u00abHibernation\u00bb, standardm\u00e4\u00dfig Falsch)<\/li>\n<li> <b>cache_file<\/b>(<i>str<\/i>) \u2014 der Name der Datei f\u00fcr die Hibernation<\/li>\n<\/ul>\n<p><\/p>\n<p><b><u>Methoden<\/u><\/b><\/p>\n<p><\/p>\n<p>Cage.<b>file_create<\/b>( <i>server, pfad<\/i> ) \u2013 eine neue Datei erstellen<\/p>\n<p><\/p>\n<p>Cage.<b>file_rename<\/b>( <i>server, pfad, neuer_name<\/i> ) \u2013 die Datei umbenennen<\/p>\n<p><\/p>\n<p>Cage.<b>file_remove<\/b>( <i>server, pfad<\/i>) \u2013 die Datei l\u00f6schen<\/p>\n<p><\/p>\n<p>Cage.<b>\u00f6ffnen<\/b>( <i>server, pfad, mod <\/i>) \u2013 die Datei \u00f6ffnen<\/p>\n<p><\/p>\n<p>Gibt zur\u00fcck <i>fchannel<\/i> die Kanalnummer. Der Parameter <i>mod<\/i> \u2014 ist der Modus zum \u00d6ffnen der Datei: \u201ewm\u201c \u2014 monopol (lesen\/schreiben), \u201ers\u201c \u2014 nur lesen, und von anderen Clients nur zum Lesen freigegeben, \u201ews\u201c \u2014 lesen\/schreiben, und von anderen Clients nur zum Lesen freigegeben. <\/p>\n<p><\/p>\n<p>Cage.<b>schlie\u00dfen<\/b> (<i>fchannel<\/i>) \u2013 die Datei schlie\u00dfen<\/p>\n<p><\/p>\n<p>Cage.<b>schreiben <\/b>(<i>fchannel, beginn, daten <\/i>) \u2013 eine Byte-Zeichenfolge in die Datei schreiben<\/p>\n<p><\/p>\n<p>Cage.<b>lesen <\/b>(<i>fchannel, beginn, len_daten<\/i> ) \u2013 eine Byte-Zeichenfolge aus der Datei lesen<\/p>\n<p><\/p>\n<p>Cage.<b>put_pages <\/b>( <i>fchannel<\/i> ) \u2013 \u201eschiebt\u201c alle modifizierten Seiten des angegebenen Kanals aus dem Puffer auf den Server. Wird an den Stellen des Algorithmus verwendet, an denen sichergestellt werden muss, dass alle Vorg\u00e4nge auf dem Kanal physisch in der Datei auf dem Server gespeichert sind.<\/p>\n<p><\/p>\n<p>Cage.<b>push_all<\/b> () \u2013 \u201eschiebt\u201c alle modifizierten Seiten aller Kan\u00e4le f\u00fcr die Instanz der Klasse Cage aus dem Puffer auf den Server. Wird verwendet, wenn sichergestellt werden muss, dass alle Vorg\u00e4nge auf allen Kan\u00e4len auf dem Server gespeichert sind.<\/p>\n<p>Quelle: <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\/de\/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=\"de_DE\" \/>\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\/de\/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\u00fcr den Fernzugriff auf Dateien Cage | ProHoster","description":"Zweck des Systems Unterst\u00fctzung des Fernzugriffs auf Dateien auf Computern im Netzwerk.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/sistema-udalennogo-fajlovogo-dostupa-cage","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/37019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=37019"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37019\/revisions"}],"predecessor-version":[{"id":159779,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37019\/revisions\/159779"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/27748"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=37019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=37019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=37019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}