Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 从S3中删除x天以前的文件/文件夹_Powershell_Amazon S3 - Fatal编程技术网

Powershell 从S3中删除x天以前的文件/文件夹

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中删除每个

我正在尝试使用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中删除每个文件和文件夹。它似乎根本没有考虑
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

祝你好运。

拆下最后一根管道,并确认过滤器工作正常。如果没有,请在删除之前进行故障排除。旁注:您也可以使用自动执行此操作。