七牛的云存储官方并没有提供批量删除空间文件的功能,很是不方便,可以利用根据七牛云SDK写的一个简单PHP程序,批量删除文件。
下载地址
备用下载
delete.php需要修改的部分:
<?php echo \'<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\'; echo \"开始删除数据<br>\"; require_once(\'qiniu/rsf.php\'); //空间名 $bucket = \'空间名\'; //accessKey $accessKey = \'AK\'; //secretKey $secretKey = \'SK\'; //密钥管理请访问https://portal.qiniu.com/user/key //每次删除的个数 $limit = 2000; $marker = \'\'; Qiniu_setKeys($accessKey, $secretKey); $client = new Qiniu_MacHttpClient(null); $files = Qiniu_RSF_ListPrefix($client,$bucket,\'\',$marker,$limit); echo \"<hr>获取到的文件<br>\"; echo \"<pre>\"; var_dump($files); require_once(\'qiniu/rs.php\'); if(count($files[0]) > 0){ foreach ($files[0] as $key => $file) { $entries[] = new Qiniu_RS_EntryPath($bucket, $file[\'key\']); } list($ret, $err) = Qiniu_RS_BatchDelete($client, $entries); echo \"<hr>删除结果:<br>\"; if ($err !== null) { echo \"<pre>\"; var_dump($err); } else { echo \"<pre>\"; var_dump($ret); } ?> <script type=\"text/javascript\"> function reflash() { window.location.reload(); } window.onload = setTimeout(reflash,1000); </script> <?php } ?>
修改如下几个参数:
$bucket = \'空间名\'; //accessKey $accessKey = \'AK\'; //secretKey $secretKey = \'SK\';
之后将所有文件上传到PHP环境中,访问delete.php即可,刚打开delete.php文件链接,可能没有反映,耐心等一会,当出现json信息,说明链接成功。如果文件较多,会自动刷新页面,视空间文件多少,时间不定,直到全部删除,不要管它。之前试过2万多文件,删除时间接近20分钟。
原文:https://jszbug.com/16159
暂无评论内容