|
@@ -222,7 +222,7 @@ class Exam extends Base {
|
|
|
}
|
|
|
$studies = DB::table('series')->where('study_id',$exam['study_id'])->column('id');
|
|
|
$images = DB::table('images')->where('series_id','in',$studies)->column('metadata');
|
|
|
- $return = $this->delAli($images);
|
|
|
+ $this->delOneAli($images);
|
|
|
return 'delete_ok';
|
|
|
|
|
|
}
|
|
@@ -326,4 +326,53 @@ class Exam extends Base {
|
|
|
DB::table('oss_callbacks')->where('md5','in',$objects)->delete();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ public function delOneAli($data)
|
|
|
+ {
|
|
|
+ if(empty($data)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ $count = count($data);
|
|
|
+
|
|
|
+
|
|
|
+ $accessKeyId = "LTAI4GDTQ15b4F85sAaAKTEE";
|
|
|
+ $accessKeySecret = "6NrhII6uYQj0mEvU7jnPNhr9InSq57";
|
|
|
+ // Endpoint以杭州为例,其它Region请按实际情况填写。
|
|
|
+ $endpoint = "http://oss-cn-beijing.aliyuncs.com";
|
|
|
+ $bucket= "zskk-dcm";
|
|
|
+
|
|
|
+ $objects = array();
|
|
|
+ $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
|
|
|
+ if($count > 1000){
|
|
|
+ $c = floor($count/1000);
|
|
|
+ for ($i=0;$i<=$c;$i++)
|
|
|
+ {
|
|
|
+ $num1 = $i*1000;
|
|
|
+ $num2 = $i*1000+999;
|
|
|
+ // 截取1000个image数据
|
|
|
+ $data = array_slice($data,$num1,$num2);
|
|
|
+ foreach ($data as $k=>$v){
|
|
|
+ $objects[] = $v;
|
|
|
+ }
|
|
|
+ // 调用阿里删除数据
|
|
|
+ $info = $ossClient->deleteObjects($bucket, $objects);
|
|
|
+ if($info){
|
|
|
+ // 删除成功则删除对应数据
|
|
|
+ DB::table('images')->where('metadata','in',$objects)->delete();
|
|
|
+ DB::table('oss_callbacks')->where('md5','in',$objects)->delete();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ foreach ($data as $k=>$v){
|
|
|
+ $objects[] = $v;
|
|
|
+ }
|
|
|
+ $info = $ossClient->deleteObjects($bucket, $objects);
|
|
|
+ if($info){
|
|
|
+ DB::table('images')->where('metadata','in',$objects)->delete();
|
|
|
+ DB::table('oss_callbacks')->where('md5','in',$objects)->delete();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return $info;
|
|
|
+ }
|
|
|
}
|