Powershell 从S3中删除x天以前的文件/文件夹
我正在尝试使用Azure管道和任务“AWS Tools for Windows PowerShell脚本”从S3 bucket中删除文件/文件夹。下面是我正在使用的powershell脚本:Powershell 从S3中删除x天以前的文件/文件夹,powershell,amazon-s3,Powershell,Amazon S3,我正在尝试使用Azure管道和任务“AWS Tools for Windows PowerShell脚本”从S3 bucket中删除文件/文件夹。下面是我正在使用的powershell脚本: Get-S3Object -BucketName "tfsonline-fullbuild-drop" | Where {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-S3Object -Force 不幸的是,这会从bucket中删除每个
Get-S3Object -BucketName "tfsonline-fullbuild-drop" | Where {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-S3Object -Force
不幸的是,这会从bucket中删除每个文件和文件夹。它似乎根本没有考虑Where
命令。你能告诉我我做错了什么吗
谢谢 Amazon网站上的文档声明,
Get-S3object
cmdlet返回类型为Amazon.S3.Model.S3object
或Amazon.S3.Model.ListObjectsResponse
的对象。这两种对象类型都没有LastWriteTime
属性。为了确保您正在测试正确的属性,您需要准确地确定返回对象具有哪些属性。阅读文档会有所帮助,但另一个选项是get member
命令
如果要获取其中一个返回的对象并将其传送到get member
,则可以看到所返回对象中的所有属性,然后就可以选择如何执行测试。类似这样的事情可能会有所帮助:
(Get-S3Object -BucketName "tfsonline-fullbuild-drop")[0] | gm
祝你好运。拆下最后一根管道,并确认过滤器工作正常。如果没有,请在删除之前进行故障排除。旁注:您也可以使用自动执行此操作。