{"componentChunkName":"component---src-templates-blog-template-js","path":"/uk/blog/psono-fileserver-12","result":{"data":{"markdownRemark":{"html":"<h2>Проблема</h2>\n<p>Люди просили створити надійний механізм обміну файлами. Сьогодні ми раді представити новий модуль файлового сервера з відкритим вихідним кодом. Як найновіший компонент екосистеми Psono, він вирішує декілька проблем:</p>\n<ul>\n<li>Файли, що передаються електронною поштою, стають занадто великими. Зазвичай все, що більше 20 Мб, відхиляється.</li>\n<li>Завантаження файлів іншим користувачам через SFTP, GPG-пошту тощо занадто складне для звичайних користувачів.</li>\n<li>Використання Google Drive або Dropbox для завантаження файлів може бути проблематичним для конфіденційних даних.</li>\n<li>Захист HR або управлінської інформації від внутрішніх співробітників, наприклад, адміністраторів файлового сервера.</li>\n<li>Хакер, що отримує доступ до вашого файлового сервера</li>\n<li>Проблеми з пропускною здатністю, коли ви працюєте у віддаленому офісі, а всі завантажують файли з вашого невеликого офісного файлового сервера.</li>\n</ul>\n<p>І саме тут Psono стає у пригоді. Psono було розроблено з урахуванням усіх цих проблем і є надзвичайно гнучким.</p>\n<h2>Зручність використання</h2>\n<p>Отже, як це виглядає для користувача, запитаєте ви. Просто.</p>\n<ul>\n<li>Користувач заходить у веб-клієнт</li>\n<li>обирає файл</li>\n<li>натискає кнопку \"завантажити\"</li>\n<li>... і якщо хоче, ділиться ним через правий клік</li>\n</ul>\n<p>Достатньо просто, сподіваюся.</p>\n<h2>Під капотом</h2>\n<p>Під капотом клієнт виконує дещо складніші кроки, однак вони приховані від користувача:</p>\n<ul>\n<li>Клієнт звертається до сервера з запитом щодо всіх доступних файлових серверів</li>\n<li>Сервер аналізує запит і, відповідно до різних атрибутів користувача (дозволи, IP, права доступу), вирішує, які шарди (місця зберігання файлів) і файлові сервери підходять</li>\n<li>Сервер створює квиток на завантаження файлу</li>\n<li>Клієнт отримує розмір файлу</li>\n<li>Клієнт оголошує про завантаження файлу та шарду на сервер</li>\n<li>Клієнт розбиває файл на частини розміром не більше 128 Мб, якщо файл занадто великий</li>\n<li>Клієнт шифрує частину</li>\n<li>Клієнт обчислює контрольну суму частини</li>\n<li>Клієнт завантажує частину на файловий сервер разом із квитком на завантаження</li>\n<li>Файловий сервер надсилає квиток на сервер</li>\n<li>Сервер перевіряє квиток</li>\n<li>Файловий сервер приймає завантаження частини</li>\n<li>Клієнт переходить до наступної частини, доки всі частини не будуть опрацьовані</li>\n<li>Клієнт оновлює свою базу даних, шифрує її та надсилає на сервер</li>\n</ul>\n<p>Завдяки цьому механізму ми можемо вирішити проблему з будь-яким розміром файлів, адже файли розбиваються на частини. Ми можемо розподіляти завантаження по декількох серверах навіть для одного файлу. Усі файли (як і все інше у psono) шифруються до того, як покинуть клієнт, і тільки потім надсилаються на сервер.</p>\n<h2>Типове налаштування файлового сервера Psono</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1078px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/98ddc0df9acf69ce6ca650c423192817/f0b2f/psono-fileserver-12-1.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 60.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAMABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQBAgMF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgH/2gAMAwEAAhADEAAAAe7gyopYgR//xAAYEAACAwAAAAAAAAAAAAAAAAAQEQABEv/aAAgBAQABBQJsaln/xAAVEQEBAAAAAAAAAAAAAAAAAAABEP/aAAgBAwEBPwFn/8QAFREBAQAAAAAAAAAAAAAAAAAAARD/2gAIAQIBAT8BJ//EABQQAQAAAAAAAAAAAAAAAAAAACD/2gAIAQEABj8CX//EABsQAAICAwEAAAAAAAAAAAAAAAERADEQIUGB/9oACAEBAAE/IVDtdEdQAWnoqpQ49n//2gAMAwEAAgADAAAAEFg//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxAf/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAER/9oACAECAQE/EJY//8QAGxABAAMBAAMAAAAAAAAAAAAAAQARITFRYaH/2gAIAQEAAT8QEKBp0IZtm8IyR2LRvrzPiYGBb2V3U//Z'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Типове налаштування файлового сервера Psono\"\n        title=\"Типове налаштування файлового сервера Psono\"\n        src=\"/static/98ddc0df9acf69ce6ca650c423192817/f0b2f/psono-fileserver-12-1.jpg\"\n        srcset=\"/static/98ddc0df9acf69ce6ca650c423192817/f93b5/psono-fileserver-12-1.jpg 300w,\n/static/98ddc0df9acf69ce6ca650c423192817/b4294/psono-fileserver-12-1.jpg 600w,\n/static/98ddc0df9acf69ce6ca650c423192817/f0b2f/psono-fileserver-12-1.jpg 1078w\"\n        sizes=\"(max-width: 1078px) 100vw, 1078px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>Верхня частина показує типовий сценарій. Relay-сервер (простий зворотний проксі) віддає статичні файли (веб-клієнт). Веб-клієнт відкривається в браузері, який потім звертається до REST API серверу. Сервер використовує базу даних Postgres для зберігання всієї постійної інформації. Веб-клієнт Psono і сервер Psono можна вважати безстанними, усі дані зберігаються в базі даних Postgres.</p>\n<p>Якщо ви хочете підключити файловий сервер, спочатку треба створити налаштування шарду та кластера на сервері, а потім ці налаштування використати для конфігурації самого файлового сервера. Коли файловий сервер запускається, він автоматично реєструється і далі кожні 10 секунд повідомляє про свою доступність. Якщо файловий сервер зупиняється, сервер це розпізнає і перестає надсилати клієнтів на \"мертвий\" сервер. Коли він повертається до роботи, він знову реєструється і починає отримувати запити від клієнтів. На зображенні вище ми зберігаємо всі частини у локальному сховищі та маємо Relay-сервер (може бути той самий, що й для звичайного сервера або веб-клієнта для невеликих середовищ) для SSL-офлоуду.</p>\n<p>Окрім локального сховища, можна використовувати різні сховища та навіть поєднувати їх.</p>\n<h2>Поєднання різних бекендів сховищ</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 688px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/bb752702934f9405bedbaa5c8a30342e/b4157/psono-fileserver-12-2.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 67%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAANABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAQAF/8QAFwEAAwEAAAAAAAAAAAAAAAAAAAECA//aAAwDAQACEAMQAAAB1wNIYh//xAAZEAACAwEAAAAAAAAAAAAAAAAAAQIQETH/2gAIAQEAAQUCNIvVS5//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAVEQEBAAAAAAAAAAAAAAAAAAAAEf/aAAgBAgEBPwGI/8QAFhAAAwAAAAAAAAAAAAAAAAAAEBEg/9oACAEBAAY/Ag4//8QAGRAAAwEBAQAAAAAAAAAAAAAAAAERIRBR/9oACAEBAAE/IaqMTdb6p21p0//aAAwDAQACAAMAAAAQXw//xAAWEQEBAQAAAAAAAAAAAAAAAAAAARH/2gAIAQMBAT8Q1a//xAAVEQEBAAAAAAAAAAAAAAAAAAAAIf/aAAgBAgEBPxAh/8QAHRABAAICAgMAAAAAAAAAAAAAAQARIUExUWGBkf/aAAgBAQABPxDNDkgN82dQTMPIfJtY3TTXqEIqNu5//9k='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Поєднання різних бекендів сховищ\"\n        title=\"Поєднання різних бекендів сховищ\"\n        src=\"/static/bb752702934f9405bedbaa5c8a30342e/b4157/psono-fileserver-12-2.jpg\"\n        srcset=\"/static/bb752702934f9405bedbaa5c8a30342e/f93b5/psono-fileserver-12-2.jpg 300w,\n/static/bb752702934f9405bedbaa5c8a30342e/b4294/psono-fileserver-12-2.jpg 600w,\n/static/bb752702934f9405bedbaa5c8a30342e/b4157/psono-fileserver-12-2.jpg 688w\"\n        sizes=\"(max-width: 688px) 100vw, 688px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>Наразі підтримуються (окрім локального сховища) Amazon S3, GCP Cloud Storage та Azure Blob Storage.</p>\n<p>Можна використовувати декілька файлових серверів для вирішення, наприклад, проблем із продуктивністю через обмеження пропускної здатності. Можливо, у вас є працівники, які працюють віддалено, при цьому в офісі — дуже слабке інтернет-з’єднання. Інше використання — захистити локальні файли ще краще і</p>\n<ul>\n<li>не дозволяти внутрішні файли завантажувати у зовнішнє сховище</li>\n<li>дозволити зовнішнім особам ділитися файлами з вашими співробітниками без іншого інструменту</li>\n</ul>\n<p>Одна із конфігурацій, яка вирішує проблему зі швидкістю і забезпечує кращу ізоляцію, може виглядати так:</p>\n<h2>Віддалена локація</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 940px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/c0026d8a60334bdfa0a21cfaad94a27a/ed9a5/psono-fileserver-12-3.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 82.66666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAARABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABYBAQEBAAAAAAAAAAAAAAAAAAACAf/aAAwDAQACEAMQAAAB7CNnSAIAf//EABgQAAIDAAAAAAAAAAAAAAAAAAARARAg/9oACAEBAAEFArY5z//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABcRAAMBAAAAAAAAAAAAAAAAAAAQERL/2gAIAQIBAT8Bpp//xAAUEAEAAAAAAAAAAAAAAAAAAAAw/9oACAEBAAY/Ah//xAAbEAACAwADAAAAAAAAAAAAAAAAARARITFBYf/aAAgBAQABPyFG35FlyzQtnU//2gAMAwEAAgADAAAAEBTAgv/EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8QH//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQIBAT8QF//EAB4QAAICAQUBAAAAAAAAAAAAAAEhABExEEFRYXGx/9oACAEBAAE/EBLsjKoTOwKKezgFlOMVjYkzsMHxr//Z'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Віддалена локація\"\n        title=\"Віддалена локація\"\n        src=\"/static/c0026d8a60334bdfa0a21cfaad94a27a/ed9a5/psono-fileserver-12-3.jpg\"\n        srcset=\"/static/c0026d8a60334bdfa0a21cfaad94a27a/f93b5/psono-fileserver-12-3.jpg 300w,\n/static/c0026d8a60334bdfa0a21cfaad94a27a/b4294/psono-fileserver-12-3.jpg 600w,\n/static/c0026d8a60334bdfa0a21cfaad94a27a/ed9a5/psono-fileserver-12-3.jpg 940w\"\n        sizes=\"(max-width: 940px) 100vw, 940px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>Ця конфігурація спільно використовує увесь трафік шарду \"external\" між сайтами у двох напрямках: зовнішні користувачі можуть завантажувати файли для подальшого скачування співробітниками і навпаки.</p>\n<p>Внутрішній шард, натомість, ніколи не синхронізується у віддалену локацію і залишається більш захищеним. Оскільки файли у шарді \"external\" синхронізуються лише один раз, коли вони змінюються, сто працівників можуть отримати файл із цього шарду, не скачуючи його сто раз із віддаленої локації. Якщо ж ви завантажуєте файл, то можете поділитися ним із 100 зовнішніми користувачами без потреби завантажувати його 100 разів.</p>\n<p>Перевага у пропускній здатності також може допомогти з’єднати віддалені локації за схожою схемою:</p>\n<h2>З двома віддаленими офісами</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 941px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/47dc0d7f3392e77934cbb82d53460e8d/ec5dd/psono-fileserver-12-4.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 83%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAARABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAECBf/EABYBAQEBAAAAAAAAAAAAAAAAAAACAf/aAAwDAQACEAMQAAAB7CE6RoIAf//EABgQAAIDAAAAAAAAAAAAAAAAAAARARAg/9oACAEBAAEFArY5z//EABQRAQAAAAAAAAAAAAAAAAAAACD/2gAIAQMBAT8BH//EABcRAAMBAAAAAAAAAAAAAAAAAAAQERL/2gAIAQIBAT8Bpp//xAAUEAEAAAAAAAAAAAAAAAAAAAAw/9oACAEBAAY/Ah//xAAaEAACAwEBAAAAAAAAAAAAAAAAARARITFh/9oACAEBAAE/IeG35DZdZoWxT//aAAwDAQACAAMAAAAQHMCC/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAwEBPxAf/8QAFBEBAAAAAAAAAAAAAAAAAAAAIP/aAAgBAgEBPxAX/8QAHRABAAICAgMAAAAAAAAAAAAAAQAxESEQQWFxof/aAAgBAQABPxBVLZ0BU31TT7PcQdB05lArF5nkZTn/2Q=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"З двома віддаленими офісами\"\n        title=\"З двома віддаленими офісами\"\n        src=\"/static/47dc0d7f3392e77934cbb82d53460e8d/ec5dd/psono-fileserver-12-4.jpg\"\n        srcset=\"/static/47dc0d7f3392e77934cbb82d53460e8d/f93b5/psono-fileserver-12-4.jpg 300w,\n/static/47dc0d7f3392e77934cbb82d53460e8d/b4294/psono-fileserver-12-4.jpg 600w,\n/static/47dc0d7f3392e77934cbb82d53460e8d/ec5dd/psono-fileserver-12-4.jpg 941w\"\n        sizes=\"(max-width: 941px) 100vw, 941px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>У цій схемі кожен сайт має свій файловий сервер, і всі файли поширюються між офісами. Запис іде лише у конкретний шард, а це дозволяє налаштувати односторонню синхронізацію кожного шарду. Така схема дасть змогу працівникам у Нью-Йорку отримувати файли без затримок.</p>\n<p>Наступний важливий момент — балансування навантаження. Це чудово, якщо у вас кілька співробітників, що не \"забивають\" канал. Якщо ж у вас 1000 користувачів, що регулярно підключаються до файлового сервера, це створить обмеження пропускної здатності для одного сервера. На щастя, Psono може впоратися з цим. Ось два варіанти балансування завантаження, які пропонує файловий сервер Psono.</p>\n<p>Можливо, у вас уже є балансувальник навантаження, який ви хочете використовувати. Тоді ваша схема виглядатиме так:</p>\n<h2>Балансування навантаження файлового сервера через loadbalancer</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 1047px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/8ccac96fbf0b9b56bcefdfef84f986bc/b1315/psono-fileserver-12-5.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 43.99999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAJABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEF/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAL/2gAMAwEAAhADEAAAAddZM0H/xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAEFAl//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAEDAQE/AT//xAAUEQEAAAAAAAAAAAAAAAAAAAAQ/9oACAECAQE/AT//xAAUEAEAAAAAAAAAAAAAAAAAAAAg/9oACAEBAAY/Al//xAAYEAACAwAAAAAAAAAAAAAAAAAAAREgIf/aAAgBAQABPyEnFX//2gAMAwEAAgADAAAAEJgv/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAGxAAAQQDAAAAAAAAAAAAAAAAAQAQESExUWH/2gAIAQEAAT8QBJmotDYM8cYb/9k='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Балансування навантаження файлового сервера через loadbalancer\"\n        title=\"Балансування навантаження файлового сервера через loadbalancer\"\n        src=\"/static/8ccac96fbf0b9b56bcefdfef84f986bc/b1315/psono-fileserver-12-5.jpg\"\n        srcset=\"/static/8ccac96fbf0b9b56bcefdfef84f986bc/f93b5/psono-fileserver-12-5.jpg 300w,\n/static/8ccac96fbf0b9b56bcefdfef84f986bc/b4294/psono-fileserver-12-5.jpg 600w,\n/static/8ccac96fbf0b9b56bcefdfef84f986bc/b1315/psono-fileserver-12-5.jpg 1047w\"\n        sizes=\"(max-width: 1047px) 100vw, 1047px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>У цій конфігурації loadbalancer використовується для SSL-офлоуду. Два файлові сервери позаду нього виконують обробку запитів. Обидва використовують один і той самий шард, тому або шард потрібно синхронізувати, або ж організувати спільне сховище. Можна використати GlusterFS чи звичайний rsync.</p>\n<p>Альтернатива — дозволити самому клієнтові займатися балансуванням і зекономити на налаштуваннях та витратах. Варіант без виділеного loadbalancer може виглядати так:</p>\n<h2>Балансування навантаження файлового сервера без loadbalancer</h2>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 811px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/3d1b42186c845cf4b87917dd1e8a8cb0/d7413/psono-fileserver-12-6.jpg\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 55.99999999999999%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAECBf/EABUBAQEAAAAAAAAAAAAAAAAAAAAC/9oADAMBAAIQAxAAAAHXTmZoYf/EABYQAQEBAAAAAAAAAAAAAAAAAABBEP/aAAgBAQABBQJcr//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EABYQAAMAAAAAAAAAAAAAAAAAAAEQIP/aAAgBAQAGPwKCv//EABkQAAMAAwAAAAAAAAAAAAAAAAABERAhQf/aAAgBAQABPyFdN0UgsX//2gAMAwEAAgADAAAAEH8v/8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAgEBPxA//8QAHBABAAICAwEAAAAAAAAAAAAAAQARITEQQVGx/9oACAEBAAE/ELXkb6hsOKwXNNMALQGfJ83H/9k='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Балансування навантаження файлового сервера без loadbalancer\"\n        title=\"Балансування навантаження файлового сервера без loadbalancer\"\n        src=\"/static/3d1b42186c845cf4b87917dd1e8a8cb0/d7413/psono-fileserver-12-6.jpg\"\n        srcset=\"/static/3d1b42186c845cf4b87917dd1e8a8cb0/f93b5/psono-fileserver-12-6.jpg 300w,\n/static/3d1b42186c845cf4b87917dd1e8a8cb0/b4294/psono-fileserver-12-6.jpg 600w,\n/static/3d1b42186c845cf4b87917dd1e8a8cb0/d7413/psono-fileserver-12-6.jpg 811w\"\n        sizes=\"(max-width: 811px) 100vw, 811px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>\n<p>Усі ці схеми можна комбінувати, наприклад, 3 кластери по 2 сервери. Кожен кластер обслуговує той самий шард і має синхронізоване (або спільне) сховище в основі.</p>\n<p>Сподіваюся, мені вдалося показати вам широкі можливості нового та потужного модуля файлового сервера Psono.</p>","frontmatter":{"date":"May 01, 2019","slug":"psono-fileserver-12","title":"Файловий сервер Psono","description":"Обмін файлами з клієнтським шифруванням","author":"Sascha Pfeiffer","featuredImage":{"childImageSharp":{"fluid":{"base64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAYAAAAIy204AAAACXBIWXMAAAsSAAALEgHS3X78AAABxUlEQVQoz2OQNdvIKGqwQlbUYLm0iN4yJTHDlYIi+ssURfSXywBpeaC4PFBMSMJoFQcDEPz4/x9I9gLZxtxi6v+ZGMDgOAMciOotExbVX+EG1GgLNDASSHsB6TCggZ6i+sutgYaGShittJUyWeWi4bjWlknxoFhoZktuXn3XIUGDUjWQGSA7JIxWQA00WCEIxCZAg4yB2EPMcLktkHYRMVhuDzRQG8SWMF5pADTQ0tBrkymL4iap5Kr2fROXbfrvGFUcCDSO6dJTBUZxwxUIV4obrVAHGqQhYbRMR8Z0laC44XJNIFYTM1imAxTXljReqQP0sqWG4zoHPq1TEnEl7U3Z9V2vLMMy5DgUD/ODXAhUDzXMcBk/0BV2QGwmor/UH2gI0JtLfUAuBHrbXNRgmRfQy9ZSJqtd5C3WqGu4vWC29avhcQyIluBSW84vabyKD+ooiIHC+stERAxWWAINMBXVX+YFNNgVaJA7kO8ElNMFutBFwnCloaTxGiEGNKBguYoVHhf6KyEMPesNLFJGK7UljVboSRouN1cwWSULpI2BfAMgrSthuMIQ6F02qAEMqvZnGTzjWhmyK/2hRv1nUHOYArcEAF/wjDfXYw7QAAAAAElFTkSuQmCC","aspectRatio":2.989795918367347,"src":"/static/2bdf36020ee853f17d03f2e743b7689f/cafad/psono-fileserver-12-header.png","srcSet":"/static/2bdf36020ee853f17d03f2e743b7689f/d0f60/psono-fileserver-12-header.png 293w,\n/static/2bdf36020ee853f17d03f2e743b7689f/81480/psono-fileserver-12-header.png 585w,\n/static/2bdf36020ee853f17d03f2e743b7689f/cafad/psono-fileserver-12-header.png 1170w,\n/static/2bdf36020ee853f17d03f2e743b7689f/6050d/psono-fileserver-12-header.png 1200w","sizes":"(max-width: 1170px) 100vw, 1170px"}}}}}},"pageContext":{"slug":"psono-fileserver-12","lang":"uk","langPathPrefix":"/uk"}},"staticQueryHashes":["2149092236","3128451518","3192060438"]}