{"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\/sq\/blog\/administrirovanie\/storacle-deczentralizovannoe-hranilishhe-fajlov","title":{"rendered":"Storacle \u2014 nj\u00eb ruajt\u00ebse e centralizuar e skedar\u00ebve","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Storacle \u2014 nj\u00eb ruajt\u00ebse e centralizuar e skedar\u00ebve\" src=\"\/wp-content\/uploads\/2020\/05\/333f7b998e00ce32367d97f7ccd05bef.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Para fillimin, duhet t\u00eb l\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/495058\/\">nj\u00eb lidhje me artikullin e m\u00ebparsh\u00ebm<\/a><\/noindex>, n\u00eb m\u00ebnyr\u00eb q\u00eb t\u00eb kuptohet se p\u00ebr \u00e7far\u00eb \u00ebsht\u00eb fjala.<\/p>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb artikull do t\u00eb doja t\u00eb diskutoja p\u00ebr layer-in q\u00eb merret me ruajtjen e skedar\u00ebve dhe m\u00ebnyr\u00ebn se si mund t\u00eb p\u00ebrdoret nga \u00e7do person. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/storacle\/\">Storacle \u00ebsht\u00eb nj\u00eb bibliotek\u00eb e pavarur<\/a><\/noindex>, nuk ka lidhje t\u00eb drejtp\u00ebrdrejt\u00eb me muzik\u00ebn. Mund t\u00eb organizoni ruajtjen e \u00e7do skedari.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>N\u00eb artikullin e kaluar, un\u00eb paksa \"b\u00ebra zhurm\u00eb\" mbi <strong>ipfs<\/strong>, por kjo ndodhi n\u00eb kontekstin e detyr\u00ebs time. N\u00eb p\u00ebrgjith\u00ebsi, un\u00eb e konsideroj k\u00ebt\u00eb projekt t\u00eb mrekulluesh\u00ebm. M\u00eb p\u00eblqen m\u00eb shum\u00eb mund\u00ebsia p\u00ebr t\u00eb krijuar rrjeta t\u00eb ndryshme p\u00ebr detyra t\u00eb ndryshme. Kjo lejon nj\u00eb organizim m\u00eb t\u00eb mir\u00eb t\u00eb struktur\u00ebs dhe redukton ngarkes\u00ebn n\u00eb nyjat individuale dhe rrjetin si nj\u00eb t\u00ebr\u00ebsi. Madje, brenda nj\u00eb projekti t\u00eb caktuar, mund t\u00eb ndajm\u00eb rrjetin n\u00eb copa sipas disa kritereve, duke ulur ngarkes\u00ebn totale.<\/p>\n<p><\/p>\n<p>Pra, storacle p\u00ebrdor mekanizmin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/spreadable\">spreadable<\/a><\/noindex> p\u00ebr organizimin e rrjetit. Karakteristikat kryesore:<\/p>\n<p><\/p>\n<ul>\n<li>Skedar\u00ebt mund t\u00eb shtohen n\u00eb ruajtje p\u00ebrmes \u00e7do nyje.<\/li>\n<li>Skedar\u00ebt ruhen t\u00ebr\u00ebsisht, jo n\u00eb blloqe.<\/li>\n<li>\u00c7do skedar ka nj\u00eb hash unik sipas p\u00ebrmbajtjes p\u00ebr pun\u00eb t\u00eb m\u00ebtejshme me t\u00eb.<\/li>\n<li>Skedar\u00ebt mund t\u00eb dublifikohen p\u00ebr nj\u00eb besueshm\u00ebri m\u00eb t\u00eb madhe<\/li>\n<li>Numri i skedar\u00ebve n\u00eb nj\u00eb nyje \u00ebsht\u00eb i kufizuar vet\u00ebm nga sistemi i skedar\u00ebve (ka nj\u00eb p\u00ebrjashtim, p\u00ebr t\u00eb cilin do t\u00eb flasim m\u00eb posht\u00eb)<\/li>\n<li>Numri i skedar\u00ebve n\u00eb rrjet \u00ebsht\u00eb i kufizuar nga mund\u00ebsit\u00eb e spreadable sipas numrit t\u00eb nyjeve t\u00eb pranueshme n\u00eb rrjet, t\u00eb cilat n\u00eb versionin e dyt\u00eb do t\u00eb lejojn\u00eb pun\u00ebn me nj\u00eb num\u00ebr t\u00eb pafund nyjesh (p\u00ebr k\u00ebt\u00eb n\u00eb nj\u00eb artikull tjet\u00ebr)<\/li>\n<\/ul>\n<p><\/p>\n<p>Nj\u00eb shembull i thjesht\u00eb, si funksionon kjo n\u00eb realitet:<\/p>\n<p><\/p>\n<p>Serveri:<\/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  } catch(err) {\n    console.error(err.stack);\n    process.exit(1);\n  }\n})();<\/code><\/pre>\n<p><\/p>\n<p>Klienti:<\/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  } catch(err) {\n    console.error(err.stack);\n    process.exit(1);\n  }\n})();<\/code><\/pre>\n<p><\/p>\n<p><strong>Pamja nga brenda<\/strong><\/p>\n<p><\/p>\n<p>N\u00ebn kapak nuk ka asgj\u00eb mbi-natyrale. Informacioni mbi numrin e skedareve, p\u00ebrmbledhjen e tyre dhe \u00e7\u00ebshtje t\u00eb tjera ruhen n\u00eb nj\u00eb baz\u00eb t\u00eb memorjes dhe p\u00ebrdit\u00ebsohen kur skedar\u00eb fshihen ose shtohen, prandaj nuk ka nevoj\u00eb t\u00eb flasim shpesh me sistemin e skedar\u00ebve. P\u00ebrjashtim b\u00ebn aktivizimi i mbledh\u00ebsit t\u00eb mbeturinave, kur nevojitet qarkullimi i skedar\u00ebve kur arrihen disa madh\u00ebsi depozitimi, e jo ndalimi i shtimit t\u00eb t\u00eb rinjve. N\u00eb k\u00ebt\u00eb rast, duhet t\u00eb rrotullojm\u00eb depozitimin dhe puna me nj\u00eb num\u00ebr t\u00eb madh skedar\u00ebsh (&gt; nj\u00eb milion, le t\u00eb themi) mund t\u00eb shkaktoj\u00eb ngarkesa t\u00eb konsiderueshme. \u00cbsht\u00eb m\u00eb mir\u00eb t\u00eb ruajm\u00eb m\u00eb pak skedar\u00eb dhe t\u00eb aktivizojm\u00eb m\u00eb shum\u00eb node. N\u00ebse \"pastroj\u00ebsi\" \u00ebsht\u00eb i \u00e7aktivizuar, at\u00ebher\u00eb nuk ka k\u00ebt\u00eb problem.<\/p>\n<p><\/p>\n<p>Ruajtja e skedar\u00ebve p\u00ebrb\u00ebhet nga 256 dosje dhe 2 nivele thell\u00ebsie. Skedar\u00ebt ruhen n\u00eb dosjet e nivelit t\u00eb dyt\u00eb. Pra, n\u00ebse kemi 1 milion skedar\u00eb, n\u00eb \u00e7do dosje t\u00eb till\u00eb do t\u00eb jen\u00eb rreth 62500 (1000000 \/ sqrt(256)).<\/p>\n<p><\/p>\n<p>Emrat e dosjeve formohen nga heshini i skedarit, p\u00ebr t'u qasur shpejt duke e ditur hashin.<\/p>\n<p><\/p>\n<p>Kjo struktur\u00eb u zgjodh duke marr\u00eb parasysh nj\u00eb num\u00ebr t\u00eb madh k\u00ebrkesash p\u00ebr ruajtjen: mb\u00ebshtetje p\u00ebr sisteme t\u00eb dob\u00ebta dosjesh, ku nuk \u00ebsht\u00eb e d\u00ebshirueshme t\u00eb kemi shum\u00eb skedar\u00eb n\u00eb nj\u00eb dosje, kalim t\u00eb shpejt\u00eb p\u00ebrmes t\u00eb gjitha dosjeve n\u00eb nevoj\u00eb, etj. Nj\u00eb kompromise e art\u00eb.<\/p>\n<p><\/p>\n<p><strong>Ke\u0161imi<\/strong><\/p>\n<p><\/p>\n<p>N\u00eb momentin e shtimit t\u00eb skedar\u00ebve, si dhe kur i marrim, n\u00eb cache shkruhen lidhjet p\u00ebr skedar\u00ebt.<br \/>\nP\u00ebr shkak t\u00eb k\u00ebsaj, shpesh nuk \u00ebsht\u00eb e nevojshme t\u00eb kalojm\u00eb gjith\u00eb rrjetin p\u00ebr t\u00eb k\u00ebrkuar skedarin. Kjo p\u00ebrshpejton fitimin e lidhjeve dhe zvog\u00eblon ngarkes\u00ebn n\u00eb rrjet. Gjithashtu, caching ndodh p\u00ebrmes titujve http.<\/p>\n<p><\/p>\n<p><strong>Izomorfizmi<\/strong><\/p>\n<p><\/p>\n<p>Klienti \u00ebsht\u00eb shkruar n\u00eb javascript dhe \u00ebsht\u00eb izomorfik, mund t\u00eb p\u00ebrdoret drejtp\u00ebrdrejt nga shfletuesi.\u00a0<br \/>\nMund t\u00eb ngarkohet skedari <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> si nj\u00eb skenar dhe t\u00eb qaseni n\u00eb <strong>window.ClientStoracle <\/strong>ose ta importoni p\u00ebrmes sistemit t\u00eb nd\u00ebrtimit etj.<\/p>\n<p><\/p>\n<p><strong>Lidhjet e shtyra<\/strong><\/p>\n<p><\/p>\n<p>Nj\u00eb ve\u00e7ori interesante \u00ebsht\u00eb gjithashtu \"linku i vonuar\". Ky \u00ebsht\u00eb nj\u00eb lidhje p\u00ebr nj\u00eb skedar, t\u00eb cilin mund ta marrim n\u00eb m\u00ebnyr\u00eb sinkrone, k\u00ebtu dhe tani, dhe skedari do t\u00eb t\u00ebrhiqet kur t\u00eb jet\u00eb gjetur n\u00eb depo. Kjo \u00ebsht\u00eb shum\u00eb e p\u00ebrshtatshme, kur, p\u00ebr shembull, duhet t\u00eb tregojm\u00eb disa imazhe n\u00eb sit. Thjesht vendosim nj\u00eb lidhje t\u00eb vonuar n\u00eb src dhe gjith\u00e7ka \u00ebsht\u00eb gati. Mund t\u00eb krijojm\u00eb shum\u00eb raste.<\/p>\n<p><\/p>\n<p><strong>Api i klientit<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>async <strong>Client.prototype.storeFile()<\/strong> \u2014 ruajtja e skedarit<\/li>\n<li>async <strong>Client.prototype.getFileLink()<\/strong> \u2014 marrja e nj\u00eb lidhjeje direkte p\u00ebr skedarin<\/li>\n<li>async <strong>Client.prototype.getFileLinks()<\/strong> \u2014 marrja e nj\u00eb liste lidhjesh direkte p\u00ebr skedarin nga t\u00eb gjitha nyjet ku ai ndodhet<\/li>\n<li>async <strong>Client.prototype.getFileToBuffer()<\/strong> \u2014 merrni skedarin n\u00eb buffer<\/li>\n<li>async <strong>Client.prototype.getFileToPath()<\/strong> \u2014 merrni skedarin n\u00eb sistemin e skedar\u00ebve<\/li>\n<li>async <strong>Client.prototype.getFileToBlob()<\/strong> \u2014 merrni skedarin n\u00eb blob (p\u00ebr versionin e shfletuesit)<\/li>\n<li>async <strong>Client.prototype.removeFile()<\/strong> \u2014 fshij skedarin<\/li>\n<li><strong>Client.prototype.createRequestedFileLink()<\/strong> \u2014 krijoni nj\u00eb lidhje t\u00eb shtyr\u00eb<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Eksportimi i skedar\u00ebve n\u00eb nj\u00eb server tjet\u00ebr<\/strong><\/p>\n<p><\/p>\n<p>P\u00ebr t\u00eb transferuar skedar\u00ebt n\u00eb nj\u00eb nod t\u00eb tjet\u00ebr mund t\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>Thjesht kopjoni t\u00ebr\u00eb folderin e ruajtjes s\u00eb dh\u00ebnash s\u00eb bashku me konfigurimet. (n\u00eb t\u00eb ardhmen kjo mund t\u00eb mos funksionoj\u00eb)<\/li>\n<li>Kopjoni vet\u00ebm folderin me skedar\u00ebt. Por, n\u00eb k\u00ebt\u00eb rast, duhet t\u00eb ngat\u00ebrroni nj\u00ebher\u00eb funksionin <strong>node.normalizeFilesInfo()<\/strong>, p\u00ebr t\u00eb ri llogaritur t\u00eb gjith\u00eb t\u00eb dh\u00ebnat dhe p\u00ebr t'i futur n\u00eb baz\u00eb.<\/li>\n<li>P\u00ebrdorni funksionin <strong>node.exportFiles()<\/strong>, i cili do t\u00eb filloj\u00eb kopjimin e skedar\u00ebve.<\/li>\n<\/ul>\n<p><\/p>\n<p><strong>Cil\u00ebsimet kryesore t\u00eb nodit<\/strong><br \/>\nDuke nisur nodin e ruajtjes, mund t\u00eb specifikoni t\u00eb gjitha cil\u00ebsimet e nevojshme.<br \/>\nDo t\u00eb p\u00ebrshkruaj ato m\u00eb themelore, t\u00eb tjerat mund t\u00eb gjenden n\u00eb GitHub.<\/p>\n<p><\/p>\n<ul>\n<li><strong>storage.dataSize<\/strong> \u2014 madh\u00ebsia e folderit me skedar\u00ebt<\/li>\n<li><strong>storage.tempSize<\/strong> \u2014 madh\u00ebsia e folderit t\u00eb p\u00ebrkohsh\u00ebm<\/li>\n<li><strong>storage.autoCleanSize<\/strong> \u2014 madh\u00ebsia minimale e ruajtjes q\u00eb duhet mbajtur. N\u00ebse specifikohet ky parameter, sapo t\u00eb filloj\u00eb t\u00eb mungoj\u00eb hap\u00ebsira, skedar\u00ebt m\u00eb pak t\u00eb p\u00ebrdorur do t\u00eb fshihen.<\/li>\n<li><strong>file.maxSize<\/strong> \u2014 madh\u00ebsia maksimale e skedar\u00ebve<\/li>\n<li><strong>file.minSize<\/strong> \u2014 madh\u00ebsia minimale e skedar\u00ebve<\/li>\n<li><strong>file.preferredDuplicates<\/strong> \u2014 numri i preferuar i dublikateve t\u00eb skedar\u00ebve n\u00eb rrjet<\/li>\n<li><strong>file.mimeWhitelist<\/strong> \u2014 llojet e skedar\u00ebve t\u00eb lejuara<\/li>\n<li><strong>file.mimeBlacklist<\/strong> \u2014 llojet e skedar\u00ebve t\u00eb ndaluara<\/li>\n<li><strong>file.extWhitelist<\/strong> \u2014 zgjerimet e skedar\u00ebve t\u00eb lejuara<\/li>\n<li><strong>file.extBlacklist<\/strong> \u2014 zgjerimet e skedar\u00ebve t\u00eb ndaluara<\/li>\n<li><strong>file.linkCache<\/strong> \u2014 cil\u00ebsime t\u00eb ndryshme p\u00ebr caching t\u00eb lidhjeve<\/li>\n<\/ul>\n<p><\/p>\n<p>Gati t\u00eb gjitha parametrat q\u00eb lidhen me madh\u00ebsit\u00eb mund t\u00eb p\u00ebrcaktohen n\u00eb vlera absolute dhe relative.<\/p>\n<p><\/p>\n<p><strong>Puna p\u00ebrmes linj\u00ebs s\u00eb komandave<\/strong><br \/>\nBiblioteka mund t\u00eb p\u00ebrdoret p\u00ebrmes linj\u00ebs s\u00eb komandave. P\u00ebr k\u00ebt\u00eb, duhet ta instaloni at\u00eb globalisht: <strong>npm i -g storacle<\/strong>. Pas k\u00ebsaj, mund t\u00eb filloni veprimet e nevojshme nga direktoria me projektin, ku \u00ebsht\u00eb nodi. P\u00ebr shembull, <strong>storacle -a storeFile -f .\/file.txt -c .\/config.js<\/strong>, p\u00ebr t\u00eb shtuar nj\u00eb skedar. T\u00eb gjitha veprimet mund t\u00eb gjenden n\u00eb <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>Pse mund t'ju nevojitet kjo<\/strong><\/p>\n<p><\/p>\n<ul>\n<li>N\u00ebse d\u00ebshironi t\u00eb krijoni nj\u00eb projekt decentralizuar, n\u00eb t\u00eb cilin parashikohet t\u00eb ruani dhe t\u00eb punoni me skedar\u00ebt n\u00eb m\u00ebnyra t\u00eb p\u00ebrshtatshme. P\u00ebr shembull, projekti me muzik\u00eb, i p\u00ebrshkruar n\u00eb lidhjen n\u00eb fillim t\u00eb artikullit, p\u00ebrdor <strong>storacle<\/strong>.<\/li>\n<li>N\u00ebse punoni n\u00eb projekte t\u00eb tjera, ku nevojitet ruajtja e skedar\u00ebve n\u00eb m\u00ebnyr\u00eb t\u00eb shp\u00ebrndar\u00eb. Mund t\u00eb organizoni leht\u00ebsisht nj\u00eb rrjet t\u00eb mbyllur, t\u00eb p\u00ebrshtatni n\u00ebnat dhe t\u00eb shtoni t\u00eb reja, kur t\u00eb jet\u00eb e nevojshme.<\/li>\n<li>N\u00ebse ju nevojitet thjesht t\u00eb ruani skedar\u00ebt e faqes tuaj dhe nuk d\u00ebshironi t\u00eb shkruani gjith\u00e7ka vet\u00eb. Nd\u00ebrsa kjo bibliotek\u00eb mund t\u00eb jet\u00eb m\u00eb e p\u00ebrshtatshme p\u00ebr ju.<\/li>\n<li>N\u00ebse keni nj\u00eb projekt, ku punoni me skedar\u00ebt, por d\u00ebshironi q\u00eb t\u00eb gjitha manipulimet t\u00eb b\u00ebhen nga shfletuesi. Mund t\u00eb evitoni shkruajturin e kodit server.<\/li>\n<\/ul>\n<p><\/p>\n<p>Kontaktet e mia:<\/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>Burimi: <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\/sq\/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=\"sq_AL\" \/>\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\/sq\/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 nj\u00eb hap\u00ebsir\u00eb e decentralizuar p\u00ebr skedar\u00ebt | ProHoster","description":"Para se t\u00eb filloj, d\u00ebshiroj t\u00eb l\u00eb nj\u00eb lidhje me artikullin e m\u00ebparsh\u00ebm, p\u00ebr t\u00eb b\u00ebr\u00eb t\u00eb qart\u00eb se p\u00ebr \u00e7far\u00eb b\u00ebhet fjal\u00eb. N\u00eb k\u00ebt\u00eb artikull, do t\u00eb doja t\u00eb shqyrtoja shtres\u00ebn p\u00ebrgjegj\u00ebse p\u00ebr ruajtjen e skedar\u00ebve dhe si mund t\u00eb p\u00ebrdoret nga kushdo. Storacle \u00ebsht\u00eb nj\u00eb bibliotek\u00eb e pavarur, nuk ka lidhje t\u00eb drejtp\u00ebrdrejta me muzik\u00ebn. Mund t\u00eb organizoni ruajtjen e \u00e7do skedari. N\u00eb artikullin e m\u00ebparsh\u00ebm kam","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/storacle-deczentralizovannoe-hranilishhe-fajlov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/80224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=80224"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/80224\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/80225"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=80224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=80224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=80224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}