我正在尝试删除s3存储桶中的一个文件夹,该文件夹位于一个名为CreativeEngine的文件夹中,其文件夹结构如下所示:CreativeEngine / 8943 我想删除名为8943的文件夹,但其中包含文件。我需要先执行某种循环才能删除文件吗?还是可以删除文件夹?我试过了,但是没有用
<?php
$itemId=$_GET['id'];
require('s3/vendor/autoload.php');
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
// AWS Info
$bucketName = 'mybucket';
$IAM_KEY = 'mykey';
$IAM_SECRET = 'mysecret';
// Connect to AWS
$s3 = S3Client::factory(
array(
'credentials' => array(
'key' => $IAM_KEY,
'secret' => $IAM_SECRET
),
'version' => 'latest',
'region' => 'us-east-2'
)
);
$s3Destination='CreativeEngine/'.$itemId;
$keyName = $s3Destination;
try{
$s3->deleteObject(array(
'Bucket' => $bucketName,
'Key' => $keyName
));
} catch (S3Exception $e) {
$data['message']='<li>error'.$e->getMessage().'</li>';
}
?>
答案 0 :(得分:0)
这可以通过 delete_all_objects($ bucket,$ pcre)进行,其中$pcre
是可选的与Perl兼容的正则表达式(PCRE),可以根据名称过滤(默认值为PCRE_ALL
,即"/.*/i"
),例如:
$s3 = new AmazonS3();
$response = $s3->delete_all_objects($bucket, "#myDirectory/.*#");