修改PowerShell命令以删除S3存储桶中90天以上的文件(无需指定日期)
改造PowerShell命令实现S3存储桶90天前文件自动删除
原命令依赖手动指定日期筛选旧文件,现在改为自动计算90天前的日期,无需手动输入,修改后的完整命令如下:
$bucketname = "bucketname" # 计算当前日期往前推90天的日期,转为AWS API兼容的格式 $cutoffDate = (Get-Date).AddDays(-90).ToString("yyyy-MM-dd") $key = aws s3api list-object-versions --bucket $bucketname --output json --query "Versions[?LastModified<=\`"$cutoffDate\`"].{VID:VersionId, Obj:Key}" | ConvertFrom-Json Write-host "Removing desired Objects From: $bucketname" -foregroundcolor red Foreach ($output in $key) { $delete = aws s3api delete-object --bucket $bucketname --key ($output).Obj --version-id ($output).VID --output text $output.Obj }
关键修改点说明:
- 新增
$cutoffDate变量:通过Get-Date获取当前系统日期,用AddDays(-90)计算90天前的日期,再用ToString("yyyy-MM-dd")转换成AWS接口能识别的日期格式 - 替换查询参数中的硬编码日期:把原本固定的
2022-08-26替换为动态计算的$cutoffDate,同时转义双引号保证参数传递正确
内容的提问来源于stack exchange,提问作者Vaseee
相关产品推荐
相关产品推荐

