diff --git a/lib/cloudfunc.js b/lib/cloudfunc.js index 06d6357e..2cca9ab5 100644 --- a/lib/cloudfunc.js +++ b/lib/cloudfunc.js @@ -297,31 +297,6 @@ var Util; return perms; }; - /** Функция получает короткие размеры - * конвертируя байт в килобайты, мегабойты, - * гигайбайты и терабайты - * @pSize - размер в байтах - */ - this.getShortSize = function(size) { - var isNumber = Util.isNumber(size), - l1KB = 1024, - l1MB = l1KB * l1KB, - l1GB = l1MB * l1KB, - l1TB = l1GB * l1KB, - l1PB = l1TB * l1KB; - - if (isNumber) { - if (size < l1KB) size = size + 'b'; - else if (size < l1MB) size = (size/l1KB).toFixed(2) + 'kb'; - else if (size < l1GB) size = (size/l1MB).toFixed(2) + 'mb'; - else if (size < l1TB) size = (size/l1GB).toFixed(2) + 'gb'; - else if (size < l1PB) size = (size/l1TB).toFixed(2) + 'tb'; - else size = (size/l1PB).toFixed(2) + 'pb'; - } - - return size; - }; - /** Функция получает адреса каждого каталога в пути * возвращаеться массив каталогов * @param url - адрес каталога @@ -460,7 +435,7 @@ var Util; } else { type = 'text-file'; attribute = 'target="_blank" '; - size = CloudFunc.getShortSize(file.size); + size = file.size; } owner = file.owner || 'root'; diff --git a/lib/server/commander.js b/lib/server/commander.js index 2243c2e1..67efbb63 100644 --- a/lib/server/commander.js +++ b/lib/server/commander.js @@ -11,8 +11,13 @@ */ var fs = require('fs'), - Util = require('../util'), - users = require('./users'), + + DIR = '../', + DIR_SERVER = DIR + 'server/', + + Util = require(DIR + 'util'), + format = require(DIR_SERVER + 'format'), + users = require(DIR_SERVER + 'users'), WIN32 = process.platform === 'win32'; @@ -135,6 +140,8 @@ size = isDir ? 'dir' : stat.size; } + size = format.size(size); + file = { 'name' : name, 'size' : size, diff --git a/lib/server/dir.js b/lib/server/dir.js index a11cdf7c..bb27447e 100644 --- a/lib/server/dir.js +++ b/lib/server/dir.js @@ -9,10 +9,14 @@ * dir.getSize(path, callback) */ - var fs = require('fs'), - path = require('path'), + var fs = require('fs'), + path = require('path'), - Util = require('../util'), + DIR = '../', + DIR_SERVER = DIR + 'server/', + + format = require(DIR_SERVER + 'format'), + Util = require(DIR + 'util'), /* The lstat() function shall be equivalent to stat(), except when path refers to a symbolic link. In that case lstat() @@ -34,9 +38,14 @@ }); }; - exports.getSize = function(dir, callback) { + exports.getSize = function(dir, type, callback) { var total = 0; + Util.checkArgs(arguments, ['dir', 'callback']); + + if (!callback) + callback = type; + function calcSize(stat) { var size = stat && stat.size || 0; @@ -44,7 +53,14 @@ } processDir(dir, calcSize, function() { - Util.exec(callback, null, total); + var result; + + if (type !== 'raw') + result = format.size(total); + else + result = total; + + Util.exec(callback, null, result); }); }; @@ -97,4 +113,30 @@ getDirInfo(dir); } + + /** Функция получает короткие размеры + * конвертируя байт в килобайты, мегабойты, + * гигайбайты и терабайты + * @pSize - размер в байтах + */ + exports.getShortSize = function(size) { + var isNumber = Util.isNumber(size), + l1KB = 1024, + l1MB = l1KB * l1KB, + l1GB = l1MB * l1KB, + l1TB = l1GB * l1KB, + l1PB = l1TB * l1KB; + + if (isNumber) { + if (size < l1KB) size = size + 'b'; + else if (size < l1MB) size = (size/l1KB).toFixed(2) + 'kb'; + else if (size < l1GB) size = (size/l1MB).toFixed(2) + 'mb'; + else if (size < l1TB) size = (size/l1GB).toFixed(2) + 'gb'; + else if (size < l1PB) size = (size/l1TB).toFixed(2) + 'tb'; + else size = (size/l1PB).toFixed(2) + 'pb'; + } + + return size; + }; + })(); diff --git a/lib/server/format.js b/lib/server/format.js new file mode 100644 index 00000000..0c593eaa --- /dev/null +++ b/lib/server/format.js @@ -0,0 +1,31 @@ +(function() { + 'use strict'; + + var DIR = '../', + Util = require(DIR + 'util'); + + /** Функция получает короткие размеры + * конвертируя байт в килобайты, мегабойты, + * гигайбайты и терабайты + * @pSize - размер в байтах + */ + exports.size = function(size) { + var isNumber = Util.isNumber(size), + l1KB = 1024, + l1MB = l1KB * l1KB, + l1GB = l1MB * l1KB, + l1TB = l1GB * l1KB, + l1PB = l1TB * l1KB; + + if (isNumber) { + if (size < l1KB) size = size + 'b'; + else if (size < l1MB) size = (size/l1KB).toFixed(2) + 'kb'; + else if (size < l1GB) size = (size/l1MB).toFixed(2) + 'mb'; + else if (size < l1TB) size = (size/l1GB).toFixed(2) + 'gb'; + else if (size < l1PB) size = (size/l1TB).toFixed(2) + 'tb'; + else size = (size/l1PB).toFixed(2) + 'pb'; + } + + return size; + }; +})();