Удалить объект (одно изображение) в Amazon S3 с помощью PHP Yii2 не работает? - PullRequest
0 голосов
/ 19 сентября 2018

Здесь у меня есть код подключения

 $s3 = S3Client::factory(array(
           'key'    => 'xxxxxxxxx',
           'secret' => '0xxxxxxxxxx',
           'version' => 'latest',
           'region' => 'us-west-2',
     ))

Здесь имя корзины $bucket = 'ariana-ios-storages'; и здесь имя файла $p = parse_url($images->name), которое является именем файла в amazon, который нужно удалить;

Вот код для удаления файла

$delete =  $s3->deleteObject([
               'Bucket' => $bucket,
               'Key'    => $p['path']
            ]);
        var_dump($delete);
        exit();

Путь к файлу генерируется как this ;

Не удаляется один файлиз ведра, так что любой может помочь то, что мне не хватает

1 Ответ

0 голосов
/ 24 сентября 2018
  public function actionDeleteImages($id)
  {
    $exportImage=  \common\models\ExportImages::findOne($id);
    $base_url='base url to bucket';
    $s3 = S3Client::factory(array(
        'key'    => 'xxxxxxx',
        'secret' => '0pdfOx21xxxxxxxxxx',
            'version' => 'latest',
            'region' => 'us-west-2',
    ));
    $bucket = 'name of bucket';
    $key=urldecode(explode($base_url,$exportImage->name)[1]);// $images->name is  Path from Db, base url is path to s3 server
    $delete =  $s3->deleteObject([
        'Bucket' => 'ariana-ios-storages',
        'Key' => $key
    ]);
    $object_exist =  $s3->doesObjectExist($bucket,$key);
    if(!$object_exist){
        return "succesfully deleted";
    }else{
        return "there is some problem while procesing the deletion";
    }
  }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...