php - AWS 使用 PHP 开发工具包删除文件夹中包含的所有内容
问题描述
我想知道为什么我的简单代码没有从存储桶中删除包含在rave/fool
我的代码:
$result = $s3Client->deleteObjects([
'Bucket' => 'mybucket',
'Delete' => [
'Objects' => [
[
'Key' => 'rave/fool/*',
],
],
'Quiet' => true,
],
]);
它应该删除其中包含的每个项目,rave/fool/
因为我有大量数据要在批处理操作中删除。
再次感谢,伟大的社区。
解决方案
S3 没有通配符。星号被视为键中的文字字符(并且可能没有与该键匹配的对象)。
您可以列出所有带有相关前缀(rave/fool/
)的对象,并逐个或批量删除它们。
更新:AWS PHP SDK 似乎包含此功能的快捷方式:deleteMatchingObjects,但在指定前缀时不要使用星号。您还可以提供正则表达式,它将仅删除与正则表达式匹配的对象。
推荐阅读
- authentication - Ansible Tower 多域认证
- ios - In iPhone device, VPN profile showing "unknown" when installed, in Settings -> VPN screen
- .net - How to change route name in .NET Odata?
- fortify - Fortify Token - Access Denied
- php - 使用 PHP 将文件从 oneDrive 共享 url 复制到我的服务器?
- java - 尝试在 Fragment 中实现 OnClick 侦听器
- c# - Azure Pipeline (DotNetCoreCLI@2) 将 DLL 包含到 nuget
- powershell - Azure Pipelines 中的 Az Devops 命令失败(经典)
- reactjs - GitHub Actions 部署构建时出现错误
- mongodb - 从 shell 执行 mongsh 并输出干净?