ReOSS的PHP的SDK中怎么批量删除文件?
的确用的时候会不安全,但是这个跟你在mysql中用truncate table 这个是一个道理的。
下面是我写的代码片段
/**
* 批量删除文件<br>
* 注意: 文件会被直接删除
* @param string $Prefix 需要批量删除的object的key前缀(不能为空)
* @return void
*/
public function deleteAll($Prefix)
{
static $iGroup = 50; //每次批量删除处理的分组大小
if (empty($Prefix))
return;
$aGetListParam = array('Bucket'=> $this->msBucket, 'Prefix'=> $Prefix, 'MaxKeys'=>$iGroup);
$aDeleteParam = array('Bucket'=> $this->msBucket, 'Key'=>'');
do
{
$iCnt = 0;
$objectListing = $this->mOSS->listObjects($aGetListParam); //取一组分组数据
$aFileBuf = array(); //初始化缓存
/*取出列表*/
foreach ($objectListing->getObjectSummarys() as $objectSummary)
$aFileBuf[] = $objectSummary->getKey();
$iCnt = count($aFileBuf);
unset($objectListing);
/*删除列表内的object*/
foreach ($aFileBuf as $sNode)
{
$aDeleteParam['Key'] = $sNode;
$this->mOSS->deleteObject($aDeleteParam);
}
unset($aFileBuf);
}while($iCnt === $iGroup);
}