Ghost/core/server/storage/base.js

49 lines
1.1 KiB
JavaScript
Raw Normal View History

var moment = require('moment'),
path = require('path');
function StorageBase() {
}
StorageBase.prototype.getTargetDir = function (baseDir) {
var m = moment(new Date().getTime()),
month = m.format('MM'),
year = m.format('YYYY');
if (baseDir) {
return path.join(baseDir, year, month);
}
return path.join(year, month);
};
StorageBase.prototype.generateUnique = function (store, dir, name, ext, i) {
var self = this,
filename,
append = '';
if (i) {
append = '-' + i;
}
filename = path.join(dir, name + append + ext);
return store.exists(filename).then(function (exists) {
if (exists) {
i = i + 1;
return self.generateUnique(store, dir, name, ext, i);
} else {
return filename;
}
});
};
StorageBase.prototype.getUniqueFileName = function (store, image, targetDir) {
var ext = path.extname(image.name),
name = path.basename(image.name, ext).replace(/[\W]/gi, '-'),
self = this;
return self.generateUnique(store, targetDir, name, ext, 0);
};
module.exports = StorageBase;