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);
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); }
$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);