Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var JSZip = require("./Accessories/node_modules/jszip");
- var fs = require("fs");
- var zip = new JSZip();
- var crypto = require('crypto');
- var new_folder = zip.folder("test_arh");
- var path = require('path');
- function list_dir(directory, new_folder) {
- fs.readdirSync(directory).map(f => {
- // todo refact path join
- const name = path.join( directory, f);
- if (fs.statSync(name).isDirectory()) {
- list_dir(name, new_folder)
- } else if (fs.statSync(name).isFile()) {
- new_folder.file(name, fs.readFileSync( name, "utf8"))
- }
- })
- return new_folder
- }
- function generator_key(key_length) {
- var key = '';
- for(var i = 0; i<key_length; i++) {
- key += String.fromCharCode(Math.floor(Math.random() * (1024 - 33 + 1)) + 33)
- }
- return key
- }
- var key = generator_key(256);
- var encrypt = crypto.createCipher('aes192', key);
- const decrypt = crypto.createDecipher('aes192', key);
- const result = list_dir("test_arh", new_folder);
- result
- .generateNodeStream({type:'nodebuffer', streamFiles: true})
- .pipe(encrypt)
- //.pipe(decrypt)
- .pipe(fs.createWriteStream('new_folders.zip'))
- .on('finish', function () {
- console.log('successful backup')
- })
- .on('data', function(data) {
- console.log({
- key: key,
- data: data
- })
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement