예제 #1
0
require_once "config.inc.php";
// 2. check _POST
$_inp = $_POST;
if (!isset($_inp['mid'])) {
    error_out(print_r($_POST, true) . " requires mid");
}
// 3. 檢查 user 是否能刪除此檔
$map = map_get_single($_inp['mid']);
if ($map == null) {
    error_out("no such map" . $_inp['mid']);
}
if ($map['uid'] != $_SESSION['uid']) {
    error_out("you are not the owner");
}
// 3.1 正在搬移資料結構, 或重新整理
$block_msg = map_blocked($out_root, $_SESSION['uid']);
if ($block_msg != null) {
    error_out($block_msg);
}
// 4. 真的刪除/回收
if ($_inp['op'] && $_inp['op'] == 'recycle') {
    $ok = map_expire($_inp['mid']);
} else {
    $ok = map_del($_inp['mid']);
}
if ($ok === FALSE) {
    error_out("delete/expire fail");
}
sleep(1);
$mid = $_inp['mid'];
ok_out("{$mid} deleted", $mid);
예제 #2
0
function do_expire($days = 180, $realdo = 0)
{
    $maps = get_old_maps($days);
    $size = 0;
    foreach ($maps as $map) {
        $size += $map['size'];
        if ($realdo == 1) {
            map_expire($map['mid']);
        }
    }
    // expire how many maps, and how much space freed
    return array(count($maps), $size);
}
예제 #3
0
$opt = getopt("rm:");
if (!isset($opt['m'])) {
    echo "Usage: {$argv['0']} -m 4 -d\n";
    echo "       -r: real run, default is dry run\n";
    echo "       -m map id: expire certain map id\n";
    exit(0);
}
$mid = $opt['m'];
$realdo = 0;
if (isset($opt['r'])) {
    $realdo = 1;
}
echo $realdo == 1 ? "Do " : "Test (without -r)";
echo "expire map:{$mid} " . date('Y-m-d H:i:s') . "\n";
if ($realdo) {
    $a = map_expire($mid);
} else {
    $a = true;
}
if ($a === false) {
    echo "Failed\n";
    exit(1);
}
echo "Done\n";
//list ($file_expired, $size_freed)  = do_expire($tt,$realdo);
//echo "File expired: $file_expired\n";
//echo "Size Freed: $size_freed\n";
//echo "Total Size: " . map_totalsize() . "\n";
/*
$a =map_expire($mid);