แกแแแแ แแแแแฌแงแแ, แฃแแแ แฌแแแแแ
แแ แกแขแแขแแแจแ แแกแฃแ แก แจแแแฎแแแ แคแแแแก, แ แแแแแแช แแแกแฃแฎแแกแแแแแแแแ แคแแแแแแแก แจแแกแแแแฎแแ แแ แ แแแแ แจแแแซแแแแ แแแกแ แแแแแงแแแแแ แแแแแแก.
แฌแแแ แกแขแแขแแแจแ แชแแขแแแ "แแแแแแแ แ แแฃแแ". ipfs, แแแแ แแ แแก แแแฎแแ แแฃแกแขแแ แแ แแ แแแแแแแก แแแแขแแฅแกแขแจแ, แ แแแแแกแแช แแ แแแแแแ แแแแ. แแแแแแแ, แแคแแฅแ แแ, แ แแ แแก แแ แแแฅแขแ แแแแแ แแ. แแ แฃแแ แแแแ แแแ แฉแแแแแ แแแแกแฎแแแแแแฃแแ แฅแกแแแแแแก แจแแฅแแแแก แจแแกแแซแแแแแแแ แกแฎแแแแแกแฎแแ แแแแชแแแแแแกแแแแก. แแก แกแแจแฃแแแแแแก แแแซแแแแ แฃแแแ แแแแฌแงแแ แกแขแ แฃแฅแขแฃแ แ แแ แจแแแแชแแ แแ แแแขแแแ แแแ แชแแแแแฃแ แแแแแซแแแแ แแ แแแแแแแแ แฅแกแแแแ. แแ แแ แแ แแแฅแขแแก แคแแ แแแแแจแแช แแ, แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ, แจแแแแซแแแแ แฅแกแแแแก แแแฌแแแแแแ แแแงแแคแ แแแ แแแแฃแแ แแ แแขแแ แแฃแแแแแก แแแฎแแแแแ, แแแแแแแ แแแขแแแ แแแแก แจแแแชแแ แแแแ.
แแกแ แ แแ, storacle แแงแแแแแก แแแฅแแแแแแก
- แคแแแแแแ แจแแแซแแแแ แแแแแแขแแก แกแแชแแแจแ แแแแแกแแแแ แ แแแแแซแแก แกแแจแฃแแแแแแ.
- แคแแแแแแ แแแแฎแแแ แแแแแแแแ แแ แแ แ แแแแแแแจแ.
- แแแแแแฃแ แคแแแแก แแฅแแก แแแแแกแ แฃแแแแแแฃแ แ แจแแแแแ แกแแก แฐแแจแ แแแกแแแ แจแแแแแแแ แแฃแจแแแแแกแแแแก.
- แฃแคแ แ แแแขแ แกแแแแแแแแแแกแแแแก แจแแกแแซแแแแแแแ แคแแแแแแแก แแฃแแแแ แแแ
- แคแแแแแแแก แ แแแแแแแแ แแ แ แแแแแซแแ แจแแแแแคแแ แแแแแ แแฎแแแแ แคแแแแฃแ แ แกแแกแขแแแแ (แแ แกแแแแแก แแแแแแแแแแกแ, แแแแก แจแแกแแฎแแ แฅแแแแแ)
- แฅแกแแแจแ แคแแแแแแแก แ แแแแแแแแ แจแแแแแคแแ แแแแแ แแแแ แชแแแแแแก แจแแกแแซแแแแแแแแแแ แฅแกแแแจแ แแแฅแแแแ แแแแแซแแแแก แ แแแแแแแแแก แแแฎแแแแแ, แ แแแแแแแช แแแแ แ แแแ แกแแแจแ แจแแซแแแแแ แฃแกแแกแ แฃแแ แ แแแแแแแแแก แแแแแซแแแแแ แแฃแจแแแแแก (แแแฌแแ แแแแแแ แแแแก แจแแกแแฎแแ แกแฎแแ แกแขแแขแแแจแ)
แแแ แขแแแ แแแแแแแแ แแแแกแ, แแฃ แ แแแแ แแฃแจแแแแก แแก แแแแแแแ แแ แแแ แแแแแแ:
แกแแ แแแ แ:
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);
}
})();
แแแแแแขแ:
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);
}
})();
แจแแแแแ แฎแแแ
แแแแแขแแก แฅแแแจ แแ แแคแแ แแ แแแแแแ. แคแแแแแแแก แ แแแแแแแแแก, แแแแ แกแแแ แแ แแแแแกแ แแ แกแฎแแ แแฃแแฅแขแแแแก แจแแกแแฎแแ แแแคแแ แแแชแแ แแแแฎแแแ แแแฎแกแแแ แแแแก แแแแแชแแแแ แแแแแจแ แแ แแแแแฎแแแแแ แคแแแแแแแก แฌแแจแแแกแ แแ แแแแแขแแแแกแแก, แแกแ แ แแ แแ แแ แแก แกแแญแแ แ แคแแแแฃแ แกแแกแขแแแแจแ แฎแจแแ แ แฌแแแแแ. แแแแแแแแแแกแ แแ แแก แแแแแแก แจแแแแ แแแแแแแก แฉแแ แแแ, แ แแแแกแแช แกแแญแแ แแ แคแแแแแแแก แแแแแฅแชแแแ, แ แแแแกแแช แแแแฆแฌแแแ แจแแแแฎแแแก แแแ แแแแฃแแ แแแแ แแ แแ แแแ แซแแแแ แแฎแแแก แแแแแขแแแ. แแ แจแแแแฎแแแแแจแ, แแฅแแแ แฃแแแ แแแแ แแแก แแแแแ แจแแแแฎแแ แแ แแแแ แ แแแแแแแแแ แคแแแแแแแแ แแฃแจแแแแ (> แแแฅแแแ แแแแแแแ) แจแแแซแแแแ แแแแแแฌแแแแก แแแแจแแแแแแแแแ แแแขแแแ แแแ. แแ แฃแแฏแแแแกแแ แจแแแแแฎแแ แแแแแแแ แคแแแแ แแ แแแฃแจแแแ แแแขแ แแแแแซแ. แแฃ "แแแแแแแแแแแ" แแแแแ แแฃแแแ, แแแจแแ แแกแแแ แแ แแแแแแ แแ แแ แแก.
แคแแแแแก แกแแชแแแ แจแแแแแแ 256 แกแแฅแแฆแแแแแกแแแ แแ แแฃแแแแแแก 2 แแแแแกแแแ. แคแแแแแแ แแแแฎแแแ แแแแ แ แแแแแก แกแแฅแแฆแแแแแแแจแ. แแแฃ แแฃ แแ แแก 1 แแแ. แแแแแแฃแ แแกแแ แกแแฅแแฆแแแแแจแ แแฅแแแแ แแแแฎแแแแแแ 62500 แคแแแแ (1000000 / sqrt(256)).
แกแแฅแแฆแแแแแก แกแแฎแแแแแ แแฅแแแแแ แคแแแแแก แฐแแจแแกแแแ, แ แแแ แกแฌแ แแคแแ แจแแฎแแแแแ แแแกแแ, แแฃ แแชแแ แฐแแจแ.
แแก แกแขแ แฃแฅแขแฃแ แ แจแแแ แฉแ แแแแ แ แแแแแแแแแ แกแฎแแแแแกแฎแแ แจแแแแฎแแแก แแแแฎแแแแแแแก แกแแคแฃแซแแแแแ: แกแฃแกแขแ แคแแแแฃแ แ แกแแกแขแแแแแแก แแฎแแ แแแญแแ แ, แกแแแแช แแ แแ แแก แกแแกแฃแ แแแแ แแ แ แกแแฅแแฆแแแแแจแ แแแแ แ แคแแแแแก แแ แกแแแแแ, แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ แงแแแแ แกแแฅแแฆแแแแแก แกแฌแ แแคแ แแแแแแแแแ แแ แ.แจ. แ แแฆแแช แแฅแ แแก แจแฃแแแแแ.
แฅแแจแแ แแแ
แคแแแแแแแก แแแแแขแแแแกแแก, แแกแแแ แแแแ แแแฆแแแแกแแก, แคแแแแแแแก แแแฃแแแแ แแฌแแ แแแ แฅแแจแจแ.
แแแแก แฌแงแแแแแแ, แซแแแแแ แฎแจแแ แแ แแ แแ แแก แกแแญแแ แ แคแแแแแก แกแแซแแแแแแ แแแแแ แฅแกแแแแก แแแแแ. แแก แแฉแฅแแ แแแก แแแฃแแแแแก แแแฆแแแแก แแ แแแชแแ แแแก แฅแกแแแแก แแแขแแแ แแแแก. แฅแแจแแ แแแ แแกแแแ แฎแแแแ http แกแแแแฃแ แแแแก แแแจแแแแแแ.
แแแแแแ แคแแ
แแแแแแขแ แแฌแแ แแแ javascript-แจแ แแ แแ แแก แแแแแแ แคแฃแแ, แแแกแ แแแแแงแแแแแ แจแแกแแซแแแแแแแ แแแ แแแแแ แแ แแฃแแแ แแแแ.
แจแแแแซแแแแ แแขแแแ แแแ แคแแแแ
แแแแแแแแฃแแ แแแแแแแ
แกแแแแขแแ แแกแ แแแแกแแแแ แแกแแแ "แแแแแแแแฃแแ แแแแแแแแ". แแก แแ แแก แคแแแแแก แแแฃแแ, แ แแแแแก แแแฆแแแแช แจแแกแแซแแแแแแแ แกแแแฅแ แแแฃแแแ, แแฅ แแ แแฎแแ, แแ แคแแแแ แแแแแงแแแแแแ, แ แแแแกแแช แแก แฃแแแ แแแแซแแแแแแ แกแแชแแแจแ. แแก แซแแแแแ แแแกแแฎแแ แฎแแแแแแ, แ แแแแกแแช, แแแแแแแแแ, แแฅแแแ แแญแแ แแแแแ แ แแแแแแแแ แกแฃแ แแแแก แฉแแแแแแ แกแแแขแแ. แฉแแแ แฃแแ แแแแ แแแแแงแแแแ แแแแแแแแฃแแ แแแฃแแ src-แจแ แแ แแก แแ แแก แแก. แแแแ แ แจแแแแฎแแแแแก แแแคแแฅแ แแแ แจแแแแซแแแแ.
แแแแแแขแแก API
- แแกแแแแ Client.prototype.storeFile() - แคแแแแแก แจแแแแฎแแ
- แแกแแแแ Client.prototype.getFileLink() - แคแแแแแก แแแ แแแแแ แ แแแฃแแแก แแแฆแแแ
- แแกแแแแ Client.prototype.getFileLinks() - แคแแแแแก แแแ แแแแแ แ แแแฃแแแแแก แกแแแก แแแฆแแแ แงแแแแ แแแแแซแแแแ, แกแแแแช แแก แแ แกแแแแแก
- แแกแแแแ Client.prototype.getFileToBuffer() - แจแแแขแแแแ แคแแแแ แแฃแคแแ แจแ
- แแกแแแแ Client.prototype.getFileToPath() - แแแแฆแแ แคแแแแ แคแแแแฃแ แกแแกแขแแแแจแ
- แแกแแแแ Client.prototype.getFileToBlob() - แแแแฆแแ แคแแแแ blob-แจแ (แแ แแฃแแแ แแก แแแ แกแแแกแแแแก)
- แแกแแแแ Client.prototype.removeFile() - แฌแแจแแแ แคแแแแ
- Client.prototype.createRequestedFileLink() - แจแแฅแแแแแ แแแแแแแแฃแแ แแแฃแแ
แคแแแแแแแก แแฅแกแแแ แขแ แกแฎแแ แกแแ แแแ แแ
แคแแแแแแแก แกแฎแแ แแแแแซแจแ แแแแแกแแขแแแแ แจแแแแซแแแแ:
- แฃแแ แแแแ แแแแแแแแ แแ แแแแแ แจแแแแฎแแแก แกแแฅแแฆแแแแ แแแ แแแแขแ แแแแแ แแ แแแ. (แแก แจแแแซแแแแ แแ แแแฃแจแแแก แแแแแแแแจแ)
- แแแแแแแแ แแ แแฎแแแแ แกแแฅแแฆแแแแ แคแแแแแแแ. แแแแ แแ, แแ แจแแแแฎแแแแแจแ, แแฅแแแ แแแแแฌแแแ แคแฃแแฅแชแแแก แแ แแฎแแ แแแจแแแแ node.normalizeFilesInfo()แงแแแแ แแแแแชแแแแก แฎแแแแฎแแ แแแแแแแแ แแ แแแแแชแแแแ แแแแแจแ แจแแงแแแแ.
- แคแฃแแฅแชแแแก แแแแแงแแแแแ node.exportFiles()แ แแแแแแช แแแแฌแงแแแก แคแแแแแแแก แแแแแ แแแแก.
แแแแแซแแก แซแแ แแแแแ แแแ แแแแขแ แแแ
แจแแแแฎแแแก แแแแแซแแก แแแจแแแแแกแแก แจแแแแซแแแแ แแแฃแแแแแ แงแแแแ แกแแญแแ แ แแแ แแแแขแ แ.
แแ แแฆแแฌแแ แงแแแแแแ แซแแ แแแแแก, แแแแแ แฉแแแ แจแแแแซแแแแ แแแฎแแ Github-แแ.
- storage.dataSize - แกแแฅแแฆแแแแแก แแแแ แคแแแแแแแ
- แจแแแแฎแแแก.tempSize - แแ แแแแแแ แกแแฅแแฆแแแแแก แแแแ
- แจแแแแฎแแแก.autoCleanSize - แแแแแแแแฃแ แ แจแแแแฎแแแก แแแแ, แ แแแแแแช แฃแแแ แแงแแก แจแแแแฎแฃแแ. แแฃ แแฅแแแ แแแฃแแแแแแ แแ แแแ แแแแขแ แก, แแแจแแ แ แแแแ แช แแ แกแแแ แชแ แแแแแฌแฃแ แแแ, แงแแแแแแ แแแแแแแแ แแแแแงแแแแแฃแแ แคแแแแแแ แฌแแแจแแแแ.
- แคแแแแ.maxSize - แคแแแแแก แแแฅแกแแแแแฃแ แ แแแแ
- file.minSize - แคแแแแแก แแแแแแแแฃแ แ แแแแ
- file.preferredDuplicates โ แฅแกแแแจแ แคแแแแแก แแฃแแแแแแขแแแแก แกแแกแฃแ แแแแ แ แแแแแแแแ
- file.mimeWhitelist - แแแฅแแแแ แคแแแแแก แขแแแแแ
- file.mimeBlacklist - แแ แแกแฌแแ แ แคแแแแแก แขแแแแแ
- file.extWhitelist - แกแฌแแ แ แคแแแแแก แแแคแแ แแแแแแแ
- file.extBlacklist - แแ แแกแฌแแ แ แคแแแแแก แแแคแแ แแแแแแแ
- file.linkCache - แแแฃแแแแแก แฅแแจแแ แแแแก แกแฎแแแแแกแฎแแ แแแ แแแแขแ แแแ
แแแแแแแแ แแแแแแจแแ แแแฃแแ แแแแฅแแแก แงแแแแ แแแ แแแแขแ แ แจแแแซแแแแ แจแแแแแแก แ แแแแ แช แแแกแแแฃแขแฃแ , แแกแ แคแแ แแแแแ แแแแจแแแแแแแแแจแ.
แแฃแจแแแแ แแ แซแแแแแแก แฎแแแแก แแแจแแแแแแ
แแแแแแแแแแแก แแแแแงแแแแแ แจแแกแแซแแแแแแแ แแ แซแแแแแแก แฎแแแแก แแแจแแแแแแ. แแแแกแแแแแก แแฅแแแ แฃแแแ แแแแแแกแขแแแแ แแ แแแ แแแแแแแฃแ แแ: npm i -g แกแแชแแแ. แแแแก แจแแแแแ, แแฅแแแ แจแแแแซแแแแ แแแแฌแงแแ แกแแญแแ แ แแแฅแแแแแแแแ แแ แแแฅแขแแก แแแ แแฅแขแแ แแแแแ, แกแแแแช แแ แแก แแแแแซแ. แฒแแแแแแแแ, storacle -a storeFile -f ./file.txt -c ./config.jsแคแแแแแก แแแกแแแแขแแแแแ. แงแแแแ แฅแแแแแแ แจแแแแซแแแแ แแฎแแแแ แแแกแจแ
แ แแขแแ แจแแแซแแแแ แแแแญแแ แแแ แแก?
- แแฃ แแกแฃแ แ แจแแฅแแแแ แ แแแแ แกแแฎแแก แแแชแแแขแ แแแแแแแฃแแ แแ แแแฅแขแ, แ แแแแแจแแช แแแแ แแแ แคแแแแแแแก แจแแแแฎแแแก แแ แแฃแจแแแแแก แแแกแแฎแแ แฎแแแแแ แแแแแแแแแก แแแแแงแแแแแแ. แแแแแแแแแ, แกแขแแขแแแก แแแกแแฌแงแแกแจแ แแแฃแแแ แแฆแฌแแ แแแ แแฃแกแแแแแฃแ แ แแ แแแฅแขแ แแงแแแแแก แกแแชแแแ.
- แแฃ แแฅแแแ แแฃแจแแแแ แกแฎแแ แแ แแแฅแขแแแแ, แกแแแแช แคแแแแแแ แฃแแแ แจแแแแแฎแแ แแแแแฌแแแแแฃแแ แฌแแกแแ. แแฅแแแ แจแแแแซแแแแ แแแ แขแแแแ แแแฌแงแแ แแฅแแแแ แแแฎแฃแ แฃแแ แฅแกแแแ, แแแฅแแแแแ แแแแแแแคแแแฃแ แแ แแ แแแแแซแแแ แแ แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ แแแแแแขแแ แแฎแแแแ.
- แแฃ แแฅแแแ แฃแแ แแแแ แแญแแ แแแแแ แแฅแแแแ แแแแกแแแขแแก แคแแแแแแแก แกแแแแ แจแแแแฎแแ แแ แแฅแแแแแแแก แแแแแแขแแ แงแแแแแคแ แแก แแแฌแแ แ. แจแแกแแซแแแ, แแก แแแแแแแแแแ แแฅแแแแก แจแแแแฎแแแแแจแ แกแฎแแแแแ แฃแแแ แจแแแคแแ แแแ.
- แแฃ แแฅแแแ แแแฅแแ แแ แแแฅแขแ, แ แแแแแจแแช แแฃแจแแแแ แคแแแแแแแแ, แแแแ แแ แแกแฃแ แ แจแแแกแ แฃแแแ แงแแแแ แแแแแแฃแแแชแแ แแ แแฃแแแ แแแแ. แจแแแแซแแแแ แแแแแแแ แแแชแแแแ แกแแ แแแ แแก แแแแแก แแแฌแแ แ.
แฉแแแ แแแแขแแฅแขแแแ:
แฌแงแแ แ: www.habr.com