Delete pads after 3 months of inactivity
parent
329fd61bb1
commit
5c53868c3b
@ -0,0 +1,40 @@
|
|||||||
|
/* jshint esversion: 6, node: true */
|
||||||
|
const Fs = require("fs");
|
||||||
|
const nThen = require("nthen");
|
||||||
|
const Saferphore = require("saferphore");
|
||||||
|
const PinnedData = require('./pinneddata');
|
||||||
|
let config;
|
||||||
|
try {
|
||||||
|
config = require('./config');
|
||||||
|
} catch (e) {
|
||||||
|
config = require('./config.example');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!config.inactiveTime || typeof(config.inactiveTime) !== "number") { return; }
|
||||||
|
|
||||||
|
let inactiveTime = +new Date() - (config.inactiveTime * 24 * 3600 * 1000);
|
||||||
|
let inactiveConfig = {
|
||||||
|
unpinned: true,
|
||||||
|
olderthan: inactiveTime,
|
||||||
|
blobsolderthan: inactiveTime
|
||||||
|
};
|
||||||
|
let toDelete;
|
||||||
|
nThen(function (waitFor) {
|
||||||
|
PinnedData.load(inactiveConfig, waitFor(function (err, data) {
|
||||||
|
if (err) {
|
||||||
|
waitFor.abort();
|
||||||
|
throw new Error(err);
|
||||||
|
}
|
||||||
|
toDelete = data;
|
||||||
|
}));
|
||||||
|
}).nThen(function () {
|
||||||
|
var sem = Saferphore.create(10);
|
||||||
|
toDelete.forEach(function (f) {
|
||||||
|
sem.take(function (give) {
|
||||||
|
Fs.unlink(f.filename, give(function (err) {
|
||||||
|
if (err) { return void console.error(err + " " + f.filename); }
|
||||||
|
console.log(f.filename + " " + f.size + " " + (+f.atime) + " " + (+new Date()));
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue