
Sula dtosóidh mé, caithfidh mé imeacht ionas go mbeidh sé soiléir cad go díreach atáimid ag caint.
San Airteagal seo ba mhaith liom breathnú ar an gciseal atá freagrach as comhaid a stóráil, agus conas is féidir le duine ar bith é a úsáid. , níl aon nasc díreach le ceol. Is féidir leat stóráil aon chomhad a eagrú.
San alt roimhe seo, “rollaigh mé an bairille” beagán ar aghaidh ipfs, ach tharla sé seo go beacht i gcomhthéacs na faidhbe a bhí á réiteach agam. Tríd is tríd, is dóigh liom go bhfuil an tionscadal seo fionnuar. Is fearr liom ach an cumas líonraí éagsúla a chruthú le haghaidh tascanna éagsúla. Ligeann sé seo duit an struchtúr a eagrú níos fearr agus an t-ualach ar nóid aonair agus an líonra ina iomláine a laghdú. Fiú amháin faoi chuimsiú tionscadal amháin, más gá, is féidir leat an líonra a roinnt i bpíosaí de réir roinnt critéar, ag laghdú an t-ualach iomlán.
Mar sin úsáideann storacle an mheicníocht chun líonra a eagrú. Príomhghnéithe:
- Is féidir comhaid a chur leis an stór trí nód ar bith.
- Sábháiltear comhaid go hiomlán, ní i mbloic.
- Tá a hash uathúil féin ag gach comhad le haghaidh tuilleadh oibre leis.
- Is féidir comhaid a mhacasamhlú ar mhaithe le hiontaofacht níos fearr
- Tá líon na gcomhad ar nód amháin teoranta ag an gcóras comhad (tá eisceacht, níos mó ar an méid seo thíos)
- Tá líon na gcomhad sa líonra teoranta ag na cumais inleata de réir líon na nóid bhailí sa líonra, a bheidh sa dara leagan in ann oibriú le líon gan teorainn na nóid (níos mó faoi seo in airteagal eile)
Sampla simplí den chaoi a n-oibríonn sé seo go ginearálta ón gclár:
Freastalaí:
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);
}
})();Cliant:
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);
}
})();Amharc taobh istigh
Níl aon rud mhaisiúil faoi na cochall. Stóráiltear faisnéis faoi líon na gcomhad, a méid iomlán agus pointí eile i mbunachar sonraí cuimhneacháin agus déantar iad a nuashonrú nuair a scriostar agus nuair a chuirtear comhaid leo, mar sin ní gá rochtain a fháil go minic ar an gcóras comhad. Is eisceacht é an bailitheoir truflais a chumasú nuair is gá duit comhaid a scaipeadh nuair a shroichtear méid áirithe stórála, agus gan cosc a chur ar cinn nua. Sa chás seo, caithfidh tú an stóráil a sheachbhóthar, agus is féidir ualaí suntasacha a bheith mar thoradh ar oibriú le líon mór de chomhaid (> a rá milliún). Agus is fearr níos lú comhad a stóráil agus níos mó nóid a rith. Má tá an "níos glaine" faoi mhíchumas, níl aon fhadhb den sórt sin ann.
Is éard atá sa stóráil comhad ná 256 fillteán agus 2 leibhéal neadaithe. Stóráiltear comhaid i bhfillteáin dara leibhéal. Is é sin, má tá 1 milliún. Beidh thart ar 62500 comhad i ngach fillteán dá leithéid (1000000 / sqrt(256)).
Cruthaítear ainmneacha na bhfillteán ón hash comhaid ionas gur féidir leat rochtain a fháil go tapa air má tá an hash ar eolas agat.
Roghnaíodh an struchtúr seo bunaithe ar líon mór riachtanais stórála éagsúla: tacaíocht do chórais comhaid lag, nuair nach bhfuil sé inmhianaithe go leor comhad a bheith i bhfillteán amháin, trasnú tapa ar gach fillteán más gá, etc. Cineál éigin meán órga.
taisceadh
Nuair a chuirtear comhaid leis, chomh maith le nuair a fhaightear iad, scríobhtar naisc chuig comhaid chuig an taisce.
A bhuí leis seo, go minic ní gá an líonra iomlán a thrasnú sa tóir ar chomhad. Cuireann sé seo dlús le fáil naisc agus laghdaíonn sé an t-ualach ar an líonra. Tarlaíonn taisceadh freisin trí cheanntásca http.
Iseamorfa
Tá an cliant scríofa i javascript agus tá sé isomorphic, is féidir é a úsáid go díreach ón mbrabhsálaí.
Is féidir leat an comhad a uaslódáil mar script agus rochtain fuinneog.ClientStoracle nó allmhairiú tríd an gcóras tógála, etc.
Naisc iarchurtha
Gné shuimiúil freisin ná “tagairt iarchurtha”. Seo nasc chuig comhad is féidir a fháil go sioncronach, anseo agus anois, agus tarraingeofar suas an comhad nuair a aimsítear é cheana féin sa stóráil. Tá sé seo an-áisiúil nuair, mar shampla, is gá duit roinnt pictiúir a thaispeáint ar an suíomh. Níl le déanamh againn ach nasc iarchurtha a chur in src agus sin é. Is féidir leat teacht suas le go leor cásanna.
API Cliant
- async Cliant.prototype.storeFile() - an comhad a shábháil
- async Client.prototype.getFileLink() — nasc díreach a fháil leis an gcomhad
- async Fréamhshamhail.Cliant.getFileLinks() — liosta naisc dhíreacha chuig comhad a fháil ó gach nód ina bhfuil sé
- async Fréamhshamhail.Cliant.getFileToBuffer() — cuir an comhad isteach sa mhaolán
- async Fréamhshamhail.Cliant.getFileToPath() — comhad a fháil isteach sa chóras comhaid
- async Fréamhshamhail.Cliant.getFileToBlob() - faigh an comhad i blob (do leagan brabhsálaí)
- async Cliant.prototype.removeFile() - scrios comhad
- Fréamhshamhail.Cliant.cruthaighCeangal Comhad Iarrtha() — nasc iarchurtha a chruthú
Easpórtáil comhaid chuig freastalaí eile
Chun comhaid a aistriú chuig nód eile, is féidir leat:
- Just a chóipeáil an fillteán stórála ar fad chomh maith leis na socruithe. (b'fhéidir nach n-oibreoidh sé seo amach anseo)
- Cóipeáil ach an fillteán le comhaid. Ach, sa chás seo, beidh ort an fheidhm a rith uair amháin nód.normalizeFilesInfo()na sonraí go léir a athríomh agus é a chur isteach sa bhunachar sonraí.
- Úsáid feidhm Comhaid nód.export()a thosóidh ag cóipeáil comhaid.
Socruithe nód bunúsacha
Agus an nód stórála á thosú, is féidir leat na socruithe riachtanacha go léir a shonrú.
Déanfaidh mé cur síos ar na cinn is bunúsaí, is féidir an chuid eile a fháil ar Github.
- stóráil.dataSize - méid an fhillteáin le comhaid
- stóráil.tempSize — méid an fhillteáin shealadaigh
- stóráil.autoCleanSize — an méid stórála íosta is gá a choinneáil. Má shonraíonn tú an paraiméadar seo, scriosfar na comhaid is lú úsáid a luaithe a bheidh an spás ag dul i léig.
- comhad.maxSize — uasmhéid comhaid
- comhad.minSize — íosmhéid comhaid
- comhad.preferredDuplicates — líon tosaíochta na ndúblach comhaid ar an líonra
- comhad.mimeWhitelist - cineálacha comhaid bailí
- comhad.mimeBlacklist - cineálacha comhaid neamhbhailí
- comhad.extWhitelist - síntí comhad bailí
- comhad.extBlacklist - síntí comhad neamhbhailí
- comhad.linkCache - socruithe taisce naisc éagsúla
Is féidir beagnach gach paraiméadair a bhaineann le toisí a iontráil i luachanna absalóideacha agus coibhneasta araon.
Ag obair tríd an líne ordaithe
Is féidir an leabharlann a úsáid tríd an líne ordaithe. Chun é seo a dhéanamh ní mór duit é a shuiteáil go domhanda: npm i -g stór. Tar éis seo, is féidir leat na gníomhartha riachtanacha a sheoladh ón eolaire tionscadail ina bhfuil an nód. Mar shampla, storacle -a storeFile -f ./file.txt -c ./config.jschun an comhad a chur leis. Is féidir gach gníomh a fháil i
Cén fáth a mbeadh sé seo de dhíth ort?
- Más mian leat tionscadal díláraithe de chineál éigin a chruthú ina bhfuil sé ar intinn agat comhaid a stóráil agus oibriú le modhanna áisiúla. Mar shampla, úsáideann an tionscadal ceoil a thuairiscítear sa nasc ag tús an ailt stóral.
- Má oibríonn tú ar aon tionscadal eile nuair is gá duit comhaid a stóráil ar bhealach dáilte. Is féidir leat do líonra dúnta a thógáil go héasca, nóid a chumrú go solúbtha agus cinn nua a chur leis nuair is gá.
- Más gá duit do chomhaid láithreán gréasáin a stóráil áit éigin agus go bhfuil sé i bhfad ró-mhór duit gach rud a scríobh tú féin. B’fhéidir go bhfuil an leabharlann seo níos feiliúnaí ná a chéile i do chás.
- Má tá tú tionscadal ina bhfuil tú ag obair le comhaid, ach ba mhaith leat a dhéanamh go léir manipulations as an bhrabhsálaí. Is féidir leat cód freastalaí a scríobh a sheachaint.
Mo theagmhálacha:
Foinse: will.com
