Удалить папку с файлами из s3 bucket php - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь удалить папку в корзине 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>';
    }
    ?>

1 Ответ

0 голосов
/ 02 октября 2018

Это возможно с помощью delete_all_objects ($ bucket, $ pcre) , где $pcre - необязательное Perl-совместимое регулярное выражение (PCRE) для фильтрации имен по (по умолчаниюPCRE_ALL, что "/.*/i"), например:

$s3 = new AmazonS3();
$response = $s3->delete_all_objects($bucket, "#myDirectory/.*#");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...