Storage - polokelo ea faele e arolelitsoeng

Storage - polokelo ea faele e arolelitsoeng

Pele ke qala, ke tlameha ho tsamaea sehokelo sa sengoloa se fetilenge le hore ho tle ho hlake hore na hantle-ntle re bua ka eng.

Sehloohong sena ke rata ho sheba lera le ikarabellang bakeng sa ho boloka lifaele, le kamoo le ka sebelisoang ke mang kapa mang. Storacle ke laebrari e ikemetseng, ha ho na kamano e tobileng le 'mino. O ka hlophisa polokelo ea lifaele life kapa life.

Sehloohong se fetileng, ke ile ka "rola moqomo" hanyane ka hanyane ipfs, empa sena se etsahetse hantle moelelong oa bothata boo ke neng ke bo rarolla. Ka kakaretso, ke nahana hore morero ona o monate. Ke khetha feela bokhoni ba ho theha marang-rang a fapaneng bakeng sa mesebetsi e fapaneng. Sena se o nolofalletsa ho hlophisa hantle sebopeho le ho fokotsa mojaro ho li-node tsa motho ka mong le marang-rang ka kakaretso. Esita le ka har'a moralo oa morero o le mong, haeba ho hlokahala, o ka arola marang-rang ka likotoana ho latela litekanyetso tse ling, ho fokotsa mojaro o akaretsang.

Kahoo storcle e sebelisa mochine ho jalaha bakeng sa ho hlophisa marangrang. Likarolo tsa Bohlokoa:

  • Lifaele li ka eketsoa sebakeng sa polokelo ka node efe kapa efe.
  • Lifaele li bolokiloe ka botlalo, eseng ka li-blocks.
  • Faele e 'ngoe le e' ngoe e na le li-hash tsa eona tse ikhethileng bakeng sa mosebetsi o eketsehileng le eona.
  • Lifaele li ka kopitsoa hore li tšepahale haholoanyane
  • Palo ea lifaele sebakeng se le seng e lekantsoe feela ke sistimi ea faele (ho na le mokhelo, ho feta ka eona ka tlase)
  • Palo ea lifaele ka har'a marang-rang e lekanyelitsoe ke bokhoni bo ka atang ho latela palo ea li-node tse sebetsang marang-rang, tseo phetolelong ea bobeli li tla khona ho sebetsa ka palo e sa lekanyetsoang ea li-node (ho feta ka sena sehloohong se seng).

Mohlala o bonolo oa kamoo sena se sebetsang ka kakaretso ho tsoa lenaneong:

Seva:

const  Node = require('storacle').Node;

(async () => {
  try {
    const node = new Node({
      port: 4000,
      hostname: 'localhost'
    });
    await node.init();
  }
  catch(err) {
    console.error(err.stack);
    process.exit(1);
  }
})();

Moreki:

const  Client = require('storacle').Client;

(async () => {
  try {
    const client = new  Client({
      address: 'localhost:4000'
    });
    await client.init();
    const hash = await client.storeFile('./my-file');
    const link = await client.getFileLink(hash); 
    await client.removeFile(hash);
  }
  catch(err) {
    console.error(err.stack);
    process.exit(1);
  }
})();

Ka hare pono

Ha ho letho le majabajaba tlas'a hood. Lintlha tse mabapi le palo ea lifaele, boholo ba tsona kaofela le lintlha tse ling li bolokiloe polokelong ea polokelo ea mohopolo 'me li ntlafatsoa ha lifaele li hlakoloa le ho eketsoa, ​​​​ka hona ha ho na tlhoko ea ho fihlella sistimi ea faele khafetsa. Mokhelo ke ho nolofalletsa moqolli oa lithōle ha o hloka ho potoloha lifaele ha boholo bo itseng ba polokelo bo fihletsoe, 'me u se ke ua thibela ho eketsa tse ncha. Tabeng ena, o tlameha ho feta polokelo, 'me ho sebetsa ka palo e kholo ea lifaele (> ho re milione) ho ka lebisa meroalo ea bohlokoa. 'Me ho molemo ho boloka lifaele tse fokolang le ho tsamaisa li-node tse ngata. Haeba "mohloeki" a holofetse, joale ha ho na bothata bo joalo.

Polokelo ea faele e na le lifoldara tse 256 le maemo a 2 a ho lula. Lifaele li bolokiloe lifoldareng tsa boemo ba bobeli. Ke hore, haeba ho na le 1 milione. Ho tla ba le lifaele tse ka bang 62500 foldareng ka 'ngoe e joalo (1000000 / sqrt(256)).

Mabitso a foldara a thehoa ho tloha ho hash ea faele e le hore u ka e fumana kapele haeba u tseba hash.

Sebopeho sena se khethiloe ho ipapisitse le palo e kholo ea litlhoko tse fapaneng tsa polokelo: ts'ehetso bakeng sa litsamaiso tse fokolang tsa faele, moo ho sa lakatseheng ho ba le lifaele tse ngata foldareng e le 'ngoe, ho feta kapele ho lifoldara tsohle ha ho hlokahala, joalo-joalo. Mofuta o mong oa moelelo oa khauta.

Caching

Ha u eketsa lifaele, hammoho le ha u li amohela, lihokelo tsa lifaele li ngotsoe ho cache.
Ka lebaka la sena, hangata ha ho hlokahale ho haola le marang-rang ho batla faele. Sena se potlakisa ho fumana li-link le ho fokotsa mojaro ho marang-rang. Caching e boetse e etsahala ka lihlooho tsa http.

Isomorphy

Moreki o ngotsoe ka javascript mme ke isomorphic, e ka sebelisoa ka kotloloho ho tsoa ho sebatli. 
U ka kenya faele https://github.com/ortexx/storacle/blob/master/dist/storacle.client.js joalo ka script le phihlello fensetere.ClientStoracle kapa ho tlisa ka mokhoa oa ho haha, joalo-joalo.

Lihokelo tse chechisitsoeng morao

Karolo e khahlisang hape ke "refered reference". Ena ke sehokelo sa faele e ka fumanoang ka mokhoa o ts'oanang, mona le hona joale, mme faele e tla huloa ha e se e fumaneha polokelong. Sena se loketse haholo ha, ka mohlala, o hloka ho bonts'a litšoantšo tse ling sebakeng sa marang-rang. Re sa tsoa kenya sehokelo se chechisitsoeng ho src mme ke eona. O ka tla ka linyeoe tse ngata.

Client API

  • async Client.prototype.storeFile() - ho boloka faele
  • async Client.prototype.getFileLink() - ho fumana sehokelo se tobileng faeleng
  • async Client.prototype.getFileLinks() - ho fumana lethathamo la likhokahano tse tobileng faeleng ho tsoa libakeng tsohle moo e leng teng
  • async Client.prototype.getFileToBuffer() - kenya faele ka har'a buffer
  • async Client.prototype.getFileToPath() - fumana faele ho sistimi ea faele
  • async Client.prototype.getFileToBlob() - fumana faele ka blob (bakeng sa mofuta oa sebatli)
  • async Client.prototype.removeFile() - hlakola faele
  • Client.prototype.createRequestedFileLink() - theha sehokelo se chechisetsoang morao

Romella lifaele ho seva se seng

Bakeng sa ho fetisetsa lifaele sebakeng se seng, o ka:

  • Feela kopitsa foldara eohle ea polokelo hammoho le litlhophiso. (sena se kanna sa se sebetse nakong e tlang)
  • Kopitsa foldara e nang le lifaele feela. Empa, tabeng ena, o tla hloka ho tsamaisa mosebetsi hang node.normalizeFilesInfo()ho bala hape data eohle le ho e kenya ho database.
  • Sebelisa tshebetso node.exportFiles()e tla qala ho kopitsa lifaele.

Litlhophiso tsa mantlha tsa node
Ha o qala node ea polokelo, o ka bolela litlhophiso tsohle tse hlokahalang.
Ke tla hlalosa tse bohlokoa ka ho fetisisa, tse ling kaofela li ka fumanoa ho Github.

  • polokelo.dataSize - boholo ba foldara e nang le lifaele
  • polokelo.tempSize - boholo ba foldara ea nakoana
  • polokelo.autoCleanSize - bonyane boholo ba polokelo bo hlokang ho ts'oaroa. Haeba u hlakisa paramente ena, hang ha sebaka se qala ho fela, lifaele tse sa sebelisoeng hanyane li tla hlakoloa.
  • file.maxSize - boholo ba boholo ba faele
  • file.minSize - bonyane boholo ba faele
  • faele.e ratwang - palo e ratoang ea likopi tsa lifaele marang-rang
  • file.mimeWhitelist - mefuta e nepahetseng ea lifaele
  • file.mimeBlacklist - mefuta e sa nepahalang ea lifaele
  • faele.extWhitelist - litlatsetso tse nepahetseng tsa faele
  • faele.extBlacklist - keketso ea faele e sa sebetseng
  • file.linkCache - Litlhophiso tse fapaneng tsa lihokelo tsa caching

Hoo e batlang e le litekanyo tsohle tse amanang le litekanyo li ka kenngoa ka litekanyetso tse feletseng le tse lekanyelitsoeng.

Ho sebetsa ka mola oa taelo
Laebrari e ka sebelisoa ka mohala oa taelo. Ho etsa sena o hloka ho e kenya lefatšeng ka bophara: npm i -g polokelo. Ka mor'a sena, o ka qala liketso tse hlokahalang ho tsoa bukeng ea morero moo node e leng teng. Ka mohlala, polokelo -a lebenkeleFile -f ./file.txt -c ./config.jsho kenya faele. Lits'ebetso tsohle li ka fumanoa ho https://github.com/ortexx/storacle/blob/master/bin/actions.js

Hobaneng o ka hloka see?

  • Haeba u batla ho theha mofuta o itseng oa projeke eo u rerang ho e boloka le ho sebetsa ka lifaele u sebelisa mekhoa e bonolo. Ka mohlala, morero oa 'mino o hlalositsoeng sehokelong se qalong ea sehlooho o sebelisa polokelong.
  • Haeba o sebetsa mererong efe kapa efe moo o hlokang ho boloka lifaele ka mokhoa o ajoang. U ka haha ​​​​marang-rang a hau a koetsoeng habonolo, u hlophise li-node ka mokhoa o bonolo 'me u kenye tse ncha ha ho hlokahala.
  • Haeba u hloka feela ho boloka lifaele tsa sebaka sa hau sa marang-rang kae-kae 'me ho boima haholo hore u ka ngola ntho e' ngoe le e 'ngoe u le mong. Mohlomong laebrari ena e loketse ho feta tse ling molemong oa hau.
  • Haeba u na le projeke eo u sebetsang ho eona ka lifaele, empa u batla ho etsa maano ohle ho tsoa ho sebatli. U ka qoba ho ngola khoutu ea seva.

Mabitso a ka:

Source: www.habr.com

Reka sebaka se tšepahalang sa libaka tse nang le ts'ireletso ea DDoS, li-server tsa VPS VDS 🔥 Reka sebaka se tšepahalang sa ho amohela webosaete ka tšireletso ea DDoS, li-server tsa VPS VDS | ProHoster