【发布时间】:2021-09-23 15:59:31
【问题描述】:
我有一个 powershell 脚本,它从 S3 存储桶下载所有文件,然后从存储桶中删除文件。我要删除的所有文件都存储在 S3 存储桶的子文件夹中,我只想删除文件但保留子文件夹。
从 S3 下载文件后,我目前正在使用以下命令删除 S3 中的文件。
Remove-S3Object -BucketName $S3Bucket -Key $key -Force
我的问题是,如果它删除了子文件夹中的所有文件,子文件夹也会被删除。有没有办法删除文件,但使用 powerhsell 保留子文件夹。我相信我可以做这样的事情,
aws s3 rm s3://<key_to_be_removed> --exclude "<subfolder_key>"
但不太确定这是否可行。
我正在寻找完成此任务的最佳方法,目前,如果子文件夹不再存在,我唯一的选择是通过脚本重新创建子文件夹。
【问题讨论】:
-
不,没有办法。原因:S3 本身没有文件夹,您的对象有路径或键,如果该路径包含斜杠,则存在“文件夹”(在 UI 中),如果不存在键为
/sub/something.file的对象,则存在“文件夹”sub也不存在。 -
您可以添加一个空文件,其中的键是文件夹。我相信甚至有一种内容类型表明它是一个文件夹。如果您使用“创建文件夹”,这就是 AWS 在控制台中所做的。
-
“消失的文件夹”如何给您带来问题?是否特别需要保留空文件夹?
标签: amazon-web-services powershell amazon-s3 aws-cli aws-powershell