首页 > 解决方案 > AWS 使用 PHP 开发工具包删除文件夹中包含的所有内容

问题描述

我想知道为什么我的简单代码没有从存储桶中删除包含在rave/fool

我的代码:

$result = $s3Client->deleteObjects([
    'Bucket' => 'mybucket',
    'Delete' => [
        'Objects' => [
            [
                'Key' => 'rave/fool/*',
            ],
            
        ],
        'Quiet' => true,
    ],
]);



它应该删除其中包含的每个项目,rave/fool/因为我有大量数据要在批处理操作中删除。

再次感谢,伟大的社区。

标签: phpamazon-web-servicesamazon-s3delete-file

解决方案


S3 没有通配符。星号被视为键中的文字字符(并且可能没有与该键匹配的对象)。

您可以列出所有带有相关前缀(rave/fool/)的对象,并逐个或批量删除它们。

更新:AWS PHP SDK 似乎包含此功能的快捷方式:deleteMatchingObjects,但在指定前缀时不要使用星号。您还可以提供正则表达式,它将仅删除与正则表达式匹配的对象。


推荐阅读