1. 问答
  2. 问答详情

OSS的PHP的SDK中批量删除文件

1个回答

0

采纳

OSS的PHP的SDK中批量删除文件

/**
* 批量删除文件
* 注意: 文件会被直接删除
* @param string $Prefix 需要批量删除的objectkey前缀(不能为空)
* @return void
*/
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);
}


撰写答案

验证码
点击刷新