Почему я получаю сообщение «Невозможно удалить определенные ключи при выполнении» при попытке удалить файлы из S3? - PullRequest
0 голосов
/ 13 июня 2019
  1. Я использую PHP.
  2. Я дал полный доступ к IAM.
  3. Я использую объекты deleteMatchingObject из API.

Это код, который я использую:

//AWS
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;

S3_removeFilesFromWebsite('010101');

function s3_setClient() {
    // Instantiate the client.
    $s3 = new S3Client([
        //"profile" => "default",
        'version' => 'latest',
        "region" => "us-east-1",
        "http"    => [
            'verify' => false
        ],
        'credentials' => [
            'key'    => $GLOBALS["s3bucket_key"],
            'secret' => $GLOBALS["s3bucket_secret"],
        ],
    ]);

    return $s3;
}

function S3_removeFilesFromWebsite($ID) {
    $from_keyname = 'uploads/'.$ID.'/';
    $uniqueFileName = '77';
    $regexToDelete = "/.*".$uniqueFileName.".*/";

    $s3 = s3_setClient();

    $result = $s3->deleteMatchingObjects($GLOBALS["s3bucket"], $from_keyname, $regexToDelete);
}

И это ошибка, которую я продолжаю получать:

<b>Type:</b> exception 'Aws\S3\Exception\DeleteMultipleObjectsException' with message 'Unable to delete certain keys when executing a DeleteMultipleObjects request: 
- {"Key":"uploads\/010101\/77.csv","Code":"AccessDenied","Message":"Access Denied"}
- {"Key":"uploads\/010101\/43434\/77.csv","Code":"AccessDenied","Message":"Access Denied"}' in /Users/vendor/aws/aws-sdk-php/src/S3/BatchDelete.php:200
    enter code here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...