Last active
December 19, 2015 15:28
-
-
Save kerphi/5976268 to your computer and use it in GitHub Desktop.
Petit script en nodejs permettant d'écrire des lots (fichiers) ayant des noms aléatoires dans 3 niveaux de répertoires.
Chaque lot contenant 1000 JSON : un par ligne.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env node | |
/** | |
* Script chargé de générer des fichiers contenant 1000 lignes avec un JSON par ligne | |
* les fichiers on des noms alléatoires générés par uuid | |
* et sont stockés dans une structure de 3 répertoires imbriqués. | |
* | |
* Paramètres : | |
* rootPath : répertoire où seront écrits les répertoires et les fichiers | |
* nbObj : le nombre de JSON à créer avant que le script prenne fin automatiquement | |
* nbPerLot : le nombre d'objet par lot | |
* tempo : le temps max d'attente entre la création de deux fichiers | |
* | |
* Installation : | |
* npm install uuid mkdirp | |
*/ | |
var rootPath = __dirname + '/in'; | |
var nbObj = 2000000; | |
var nbPerLot = 1000; | |
var tempo = 100; | |
var fs = require('fs'); | |
var uuid = require('uuid'); | |
var mkdirp = require('mkdirp'); | |
function generateFakeLot() { | |
var id = uuid.v4(); | |
var path = rootPath + '/' + id[0] + '/' + id[1] + '/' + id[2]; | |
var file = path + '/' + id; | |
// write file (a lot) containing objects | |
mkdirp.sync(path); | |
var content = ''; | |
for (var i = 0; i < nbPerLot; i++) { | |
content += '{ id1: ' + uuid.v4() + ' }\n'; | |
nbObj--; | |
} | |
fs.writeFileSync(file, content); | |
console.log(file + ' created [' + nbObj + ']'); | |
// run generateFakeFile randomly | |
setTimeout(function () { | |
generateFakeLot(); | |
}, Math.round(Math.random() * tempo)); | |
} | |
// run it once | |
generateFakeLot(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment