【问题标题】:Amazon S3 remove empty folder from PHPAmazon S3 从 PHP 中删除空文件夹
【发布时间】:2017-01-05 10:01:57
【问题描述】:

我正在尝试删除对象,当所有对象都被删除后,我想删除主文件夹。

现在,当我删除文件夹中的对象键时,它的工作正常,当文件夹为空时,文件夹将被删除,但是当我点击最后一个主文件夹(如 (folder1/folder2/) 和 folder1 时,其中一个是空的删除文件夹2后,我无法删除此文件夹。

我的 php 代码如下所示。

$s3 = new S3Client([
    'version' => 'latest',
        'region'  => AMAZON_S3_REGION,
        'credentials' => [
            'key'    => AMAZON_KEY,
            'secret' => AMAZON_SECRET
        ]
]);

$response = $s3->listObjects([
    'Bucket' => AMAZON_S3_BUCKET,
    'Prefix' => $prefix_dir
]);

$keys = [];
foreach($response['Contents'] AS $val) {
    $keys[]['Key'] = $val['Key'];
}

$result = $s3->deleteObjects([
    'Bucket' => AMAZON_S3_BUCKET,
    'Objects' => $keys
]);

当我在获得状态码 204 后尝试单独删除文件夹路径时,为什么?

【问题讨论】:

    标签: php amazon-web-services amazon-s3 amazon


    【解决方案1】:

    尝试使用deleteMatchingObjects 并传递空的prefix 或匹配某个文件夹的字符串,而不是deleteObjects

    $s3->deleteMatchingObjects($bucket);
    // or inner of folder
    $s3->deleteMatchingObjects($bucket, 'folder1/');
    

    【讨论】:

    • 可爱,非常感谢 :) 现在我节省了很多代码。
    猜你喜欢
    • 2012-03-28
    • 2016-01-06
    • 2018-11-09
    • 2012-07-10
    • 2012-04-07
    • 2019-08-16
    • 1970-01-01
    • 2019-07-22
    • 1970-01-01
    相关资源
    最近更新 更多