{"id":80224,"date":"2020-05-04T13:42:20","date_gmt":"2020-05-04T11:42:20","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/storacle-deczentralizovannoe-hranilishhe-fajlov"},"modified":"2020-05-04T13:42:20","modified_gmt":"2020-05-04T11:42:20","slug":"storacle-deczentralizovannoe-hranilishhe-fajlov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/storacle-deczentralizovannoe-hranilishhe-fajlov","title":{"rendered":"Storacle \u2014 detsentraliseeritud failide salvestus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Storacle \u2014 detsentraliseeritud failide salvestus\" src=\"\/wp-content\/uploads\/2020\/05\/333f7b998e00ce32367d97f7ccd05bef.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Enne alustan, pean jagama <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/495058\/\">linki eelnevale artiklile<\/a><\/noindex>, et oleks selge, millest t\u00e4pselt jutt k\u00e4ib.<\/p>\n<p><\/p>\n<p>Selles artiklis soovin k\u00e4sitleda kihti, mis vastutab failide salvestamise eest, ja kuidas seda saab kasutada iga inimene. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/storacle\/\">Storacle on iseseisev raamatukogu<\/a><\/noindex>, ei ole otsest seost muusika toetamisega. Failide salvestamist saab korraldada vabalt.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Eelmises artiklis mainisin veidi \"kriitiliselt\" <strong>ipfs<\/strong>, kuid see juhtus just seoses k\u00e4sitletava probleemiga. \u00dcldiselt pean ma seda projekti v\u00e4ga heaks. Lihtsalt mulle meeldib rohkem v\u00f5imalus luua erinevaid v\u00f5rke erinevate \u00fclesannete jaoks. See v\u00f5imaldab paremini korraldada struktuuri ja v\u00e4hendada eraldi s\u00f5lmede ning kogu v\u00f5rgu koormust. Isegi \u00fche projekti raames saab vajadusel v\u00f5rku jagada t\u00fckkideks teatud kriteeriumide alusel, v\u00e4hendades \u00fcldkoormust.<\/p>\n<p><\/p>\n<p>Nii et storacle kasutab mehhanismi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/spreadable\">spreadable<\/a><\/noindex> v\u00f5rgu korraldamiseks. Peamised omadused:<\/p>\n<p><\/p>\n<ul>\n<li>Faile saab salvestusse lisada l\u00e4bi mis tahes s\u00f5lme.<\/li>\n<li>Failid salvestatakse tervikuna, mitte plokkidena.<\/li>\n<li>Igal failil on oma ainulaadne hash sisu p\u00f5hjal edasiseks t\u00f6\u00f6tlemiseks.<\/li>\n<li>Failid v\u00f5ivad olla dubleeritud suurema usaldusv\u00e4\u00e4rsuse saavutamiseks<\/li>\n<li>Failide arv \u00fchel s\u00f5lmel on piiratud ainult failis\u00fcsteemiga (on erand, millest r\u00e4\u00e4gin allpool)<\/li>\n<li>Failide arv v\u00f5rgus on piiratud spreadable'i v\u00f5imalustega nagu lubatud s\u00f5lmede arv v\u00f5rgus, mis teises versioonis v\u00f5imaldavad t\u00f6\u00f6tada piiramatu arvuga s\u00f5lmi (sellest r\u00e4\u00e4gitakse teises artiklis)<\/li>\n<\/ul>\n<p><\/p>\n<p>Lihtne n\u00e4ide, kuidas see k\u00f5ik programmist t\u00f6\u00f6tab:<\/p>\n<p><\/p>\n<p>Server:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">const  Node = require('storacle').Node;\n\n(async () =&gt; {\n  try {\n    const node = new Node({\n      port: 4000,\n      hostname: 'localhost'\n    });\n    await node.init();\n  }\n  catch(err) {\n    console.error(err.stack);\n    process.exit(1);\n  }\n})();<\/code><\/pre>\n<p><\/p>\n<p>Kliendi:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">const  Client = require('storacle').Client;\n\n(async () =&gt; {\n  try {\n    const client = new  Client({\n      address: 'localhost:4000'\n    });\n    await client.init();\n    const hash = await client.storeFile('.\/my-file');\n    const link = await client.getFileLink(hash);\n    await client.removeFile(hash);\n  }\n  catch(err) {\n    console.error(err.stack);\n    process.exit(1);\n  }\n})();<\/code><\/pre>\n<p><\/p>\n<p><strong>Vaade seestpoolt<\/strong><\/p>\n<p><\/p>\n<p>Mootori all ei ole midagi \u00fclem\u00f5istuse. Failide arvu, nende kogusuuruse ja teiste detailide teave salvestatakse m\u00e4lus ja uuendatakse failide kustutamisel ja lisamisel, seega ei ole sageli vaja failis\u00fcsteemi juurde p\u00f6\u00f6rduda. Erandiks on pr\u00fcgikorjaja sisse l\u00fclitamine, kui on vajalik failide ringlus teatud salvestusmahtude saavutamisel, mitte uute lisamise keeld. Sellisel juhul tuleb salvestust ringi k\u00e4ia, ja suure arvu failidega (\u00fcle miljoni, \u00fctleme) v\u00f5ib kaasneda m\u00e4rkimisv\u00e4\u00e4rne koormus. Seega on parem hoida v\u00e4hem faile ja k\u00e4itada rohkem s\u00f5lmi. Kui \"koristaja\" on v\u00e4lja l\u00fclitatud, siis sellised probleemid puuduvad.<\/p>\n<p><\/p>\n<p>Failide salvestus koosneb 256 kaustast ja 2 tasemest s\u00fcgavusest. Failid asuvad teise taseme kaustades. N\u00e4iteks, kui igas sellises kaustas on 1 miljon faili, on seal umbes 62500 t\u00fckki (1000000 \/ sqrt(256)).<\/p>\n<p><\/p>\n<p>Kaustade nimed moodustatakse faili hulgast, et saaks kiiresti juurde p\u00e4\u00e4seda, teades h\u00e4\u00e4letust.<\/p>\n<p><\/p>\n<p>Selline struktuur valiti arvesse v\u00f5ttes mitmeid erinevaid n\u00f5udeid salvestusse, sealhulgas n\u00f5rkade failis\u00fcsteemide toetamine, kus ei tohiks \u00fches kaustas olla palju faile, kiire kaustade l\u00e4bivaatamine vajadusel jne. Teatud kuldne kesktee.<\/p>\n<p><\/p>\n<p><strong>Vahem\u00e4lu<\/strong><\/p>\n<p><\/p>\n<p>Failide lisamisel ja nende hankimisel salvestatakse vahem\u00e4llu viidatud failide lingid.<br \/>\nSelle t\u00f5ttu ei ole sageli vaja otsida kogu v\u00f5rku failide leidmiseks. See kiirendab linkide hankimist ja v\u00e4hendab v\u00f5rgu koormust. Vahem\u00e4llu salvestamine toimub ka http-p\u00e4istes.<\/p>\n<p><\/p>\n<p><strong>Isomorfism<\/strong><\/p>\n<p><\/p>\n<p>Kliendiprogramm on kirjutatud javascriptis ja on isomorfne, seda saab kasutada otse brauserist.\u00a0<br \/>\nFaili on v\u00f5imalik \u00fcles laadida <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/storacle\/blob\/master\/dist\/storacle.client.js\">https:\/\/github.com\/ortexx\/storacle\/blob\/master\/dist\/storacle.client.js<\/a><\/noindex> kui skript ning p\u00e4\u00e4seda juurde <strong>window.ClientStoracle <\/strong>v\u00f5i importida l\u00e4bi ehituss\u00fcsteemi jne.<\/p>\n<p><\/p>\n<p><strong>Viivitusega lingid<\/strong><\/p>\n<p><\/p>\n<p>Huvi pakkuv funktsioon on samuti \"edasil\u00fckatud link\". See on link failile, mille saab saada s\u00fcnkroonselt, siin ja praegu, ja fail tuuakse v\u00e4lja, kui see on salvestuses juba leitud. See on v\u00e4ga mugav, kui n\u00e4iteks tuleb veebilehel n\u00e4idata m\u00f5ningaid pilte. Lihtsalt paneme edasil\u00fckatud lingi src atribuutidesse ja k\u00f5ik. Juhuseid, kus seda kasutada, v\u00f5ib v\u00e4lja m\u00f5elda palju.<\/p>\n<p><\/p>\n<p><strong>Kliendi api<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>async <strong>Client.prototype.storeFile()<\/strong> \u2014 faili salvestamine<\/li>\n<li>async <strong>Client.prototype.getFileLink()<\/strong> \u2014 otse\u00fchenduse saamine failile<\/li>\n<li>async <strong>Client.prototype.getFileLinks()<\/strong> \u2014 otse\u00fchenduste loendi saamine failile k\u00f5ikidest s\u00f5lmedest, kus see on olemas<\/li>\n<li>async <strong>Client.prototype.getFileToBuffer()<\/strong> \u2014 saada fail puhvri<\/li>\n<li>async <strong>Client.prototype.getFileToPath()<\/strong> \u2014 saada fail failis\u00fcsteemi<\/li>\n<li>async <strong>Client.prototype.getFileToBlob()<\/strong> \u2014 saada fail blob-ina (brauseri versiooni jaoks)<\/li>\n<li>async <strong>Client.prototype.removeFile()<\/strong> \u2014 kustutada fail<\/li>\n<li><strong>Client.prototype.createRequestedFileLink()<\/strong> \u2014 luua edasil\u00fckatud link<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Failide eksportimine teisele serverile<\/strong><\/p>\n<p><\/p>\n<p>Failide teisaldamiseks teisele s\u00f5lmele on v\u00f5imalik:<\/p>\n<p><\/p>\n<ul>\n<li>Kopeerida kogu salvestuskaust koos seadistustega. (tulevikus see v\u00f5ib mitte toimida)<\/li>\n<li>Kopeerida vaid failide kaust. Kuid sel juhul tuleb \u00fche korra k\u00e4ivitada funktsioon <strong>node.normalizeFilesInfo()<\/strong>, et \u00fcmber arvutada k\u00f5ik andmed ja kanda need andmebaasi.<\/li>\n<li>Kasutada funktsiooni <strong>node.exportFiles()<\/strong>, mis alustab failide kopeerimist.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Peamised s\u00f5lme seadistused<\/strong><br \/>\nSalvestuspunkti k\u00e4ivitamisel saab m\u00e4\u00e4rata k\u00f5ik vajalikud seadistused.<br \/>\nKirjeldan k\u00f5ige olulisemaid, \u00fclej\u00e4\u00e4nud info leidub GitHubis.<\/p>\n<p><\/p>\n<ul>\n<li><strong>storage.dataSize<\/strong> \u2014 failide kausta suurus<\/li>\n<li><strong>storage.tempSize<\/strong> \u2014 ajutise kausta suurus<\/li>\n<li><strong>storage.autoCleanSize<\/strong> \u2014 minimaalne salvestusruum, mida tuleb s\u00e4ilitada. Kui see parameeter on m\u00e4\u00e4ratud, siis eemaldatakse k\u00f5ige v\u00e4hem kasutatud failid kohe, kui ruum hakkab l\u00f5ppema.<\/li>\n<li><strong>file.maxSize<\/strong> \u2014 faili maksimaalne suurus<\/li>\n<li><strong>file.minSize<\/strong> \u2014 faili minimaalne suurus<\/li>\n<li><strong>file.preferredDuplicates<\/strong> \u2014 eelistatud failide dublikaatide arv v\u00f5rgus<\/li>\n<li><strong>file.mimeWhitelist<\/strong> \u2014 lubatud faili t\u00fc\u00fcbid<\/li>\n<li><strong>file.mimeBlacklist<\/strong> \u2014 keelatud faili t\u00fc\u00fcbid<\/li>\n<li><strong>file.extWhitelist<\/strong> \u2014 lubatud faililaiendite t\u00fc\u00fcp<\/li>\n<li><strong>file.extBlacklist<\/strong> \u2014 keelatud faililaiendite t\u00fc\u00fcp<\/li>\n<li><strong>file.linkCache<\/strong> \u2014 erinevad linkide vahem\u00e4lu seaded<\/li>\n<\/ul>\n<p><\/p>\n<p>Peaaegu k\u00f5iki, mis on seotud suurustega, saab m\u00e4\u00e4rata nii absoluutsetes kui suhtelistes v\u00e4\u00e4rtustes.<\/p>\n<p><\/p>\n<p><strong>T\u00f6\u00f6tamine k\u00e4surealt<\/strong><br \/>\nRaamatukogu on v\u00f5imalik kasutada k\u00e4surealt. Selleks tuleb see globaalselt installida: <strong>npm i -g storacle<\/strong>. P\u00e4rast seda saab k\u00e4ivitada vajalikud toimingud projekti kaustas, kus on Node. N\u00e4iteks, <strong>storacle -a storeFile -f .\/file.txt -c .\/config.js<\/strong>, et faili lisada. K\u00f5iki toiminguid saab leida <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/storacle\/blob\/master\/bin\/actions.js\">https:\/\/github.com\/ortexx\/storacle\/blob\/master\/bin\/actions.js<\/a><\/noindex><\/p>\n<p><\/p>\n<p><strong>Miks sa v\u00f5id seda vajada<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>Kui soovid luua mingi detsentraliseeritud projekti, kus plaanitakse faile mugavalt hoida ja nende kallal t\u00f6\u00f6tada. N\u00e4iteks, projekt muusikaga, mida on kirjeldatud artikli alguses, kasutab <strong>storacle<\/strong>.<\/li>\n<li>Kui t\u00f6\u00f6tad teiste projektide kallal, kus on vaja faile jaotatult hoida. Sa saad lihtsalt luua oma privaatv\u00f5rgu, paindlikult seadistada s\u00f5lmi ja lisada uusi, kui see on vajalik.<\/li>\n<li>Kui sul on lihtsalt vaja hoida oma saidi faile ja sul on ebamugav k\u00f5ike ise kirjutada. V\u00f5ib-olla sobib see teek paremini kui teised sinu jaoks.<\/li>\n<li>Kui sul on projekt, kus t\u00f6\u00f6tad faile, kuid soovid k\u00f5ik toimingud teha brauseri kaudu. Sa saad v\u00e4ltida serverikoodi kirjutamist.<\/li>\n<\/ul>\n<p><\/p>\n<p>Minu kontaktid:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ortex\">@ortex<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"mailto:mywebstreet@gmail.com\">mywebstreet@gmail.com<\/a><\/noindex><\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/499954\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u043d\u0443, \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e \u0447\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u0440\u0435\u0447\u044c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u043b\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043b\u044e\u0431\u044b\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c. Storacle \u2014 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u0441 \u043c\u0443\u0437\u044b\u043a\u043e\u0439 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0435\u0442. \u041c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043b\u044e\u0431\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":80225,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-80224","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u043d\u0443, \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e \u0447\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u0440\u0435\u0447\u044c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u043b\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043b\u044e\u0431\u044b\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c. Storacle \u2014 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u0441 \u043c\u0443\u0437\u044b\u043a\u043e\u0439 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0435\u0442. \u041c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043b\u044e\u0431\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/storacle-deczentralizovannoe-hranilishhe-fajlov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Storacle \u2014 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u043d\u0443, \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e \u0447\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u0440\u0435\u0447\u044c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u043b\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043b\u044e\u0431\u044b\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c. Storacle \u2014 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u0441 \u043c\u0443\u0437\u044b\u043a\u043e\u0439 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0435\u0442. \u041c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043b\u044e\u0431\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/storacle-deczentralizovannoe-hranilishhe-fajlov\" \/>\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=\"2020-05-04T11:42:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-04T11:42: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\udd47Storacle \u2014 detsentraliseeritud failide ladustamine | ProHoster","description":"Enne kui alustan, pean j\u00e4tma lingi eelnevasse artiklisse, et oleks selge, millest t\u00e4pselt jutt. Selles artiklis sooviksin arutada kihti, mis vastutab failide s\u00e4ilitamise eest, ja kuidas seda saab kasutada iga\u00fche poolt. Storacle on iseseisev teek, mitte mingit otsest seost muusika vahel ei ole. Failide hoidmist saab korraldada mis tahes t\u00fc\u00fcpi. Eelnevas artiklis ma","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/storacle-deczentralizovannoe-hranilishhe-fajlov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Storacle \u2014 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0444\u0430\u0439\u043b\u043e\u0432 | ProHoster","og:description":"\u041f\u0440\u0435\u0436\u0434\u0435 \u0447\u0435\u043c \u043d\u0430\u0447\u043d\u0443, \u0434\u043e\u043b\u0436\u0435\u043d \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0443\u044e \u0441\u0442\u0430\u0442\u044c\u044e, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e \u0447\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u0440\u0435\u0447\u044c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u043b\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043b\u044e\u0431\u044b\u043c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u043e\u043c. Storacle \u2014 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0441\u0432\u044f\u0437\u0438 \u0441 \u043c\u0443\u0437\u044b\u043a\u043e\u0439 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0435\u0442. \u041c\u043e\u0436\u043d\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043b\u044e\u0431\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/storacle-deczentralizovannoe-hranilishhe-fajlov","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":"2020-05-04T11:42:20+00:00","article:modified_time":"2020-05-04T11:42:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"80224","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:22:48","updated":"2022-09-27 20:25:26"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/80224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=80224"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/80224\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/80225"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=80224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=80224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=80224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}