Удалите файлы / папки из S3 возрастом x дней - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь удалить файлы / папки из корзины S3, используя Azure конвейеры с задачей "AWS Инструменты для Windows PowerShell Script". Ниже приведен сценарий powershell, который я использую:

Get-S3Object -BucketName "tfsonline-fullbuild-drop" | Where {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-S3Object -Force

К сожалению, он удаляет все файлы и папки из корзины. Похоже, он вообще не учитывает команду Where. Подскажите, пожалуйста, что я делаю не так.

Спасибо!

1 Ответ

0 голосов
/ 19 февраля 2020

В документации на сайте Amazon здесь указано, что командлет Get-S3object возвращает объекты типа Amazon.S3.Model.S3Object или Amazon.S3.Model.ListObjectsResponse. Ни один из этих типов объектов не обладает свойством LastWriteTime. Чтобы убедиться, что вы тестируете правильное свойство, вам необходимо точно определить, какие свойства имеют / имеют возвращаемые объекты. Чтение документации поможет, но другой вариант - команда get-member.

Если вы возьмете один из возвращенных объектов и перенаправите его к get-member, вы сможете увидеть все свойства объекта, являющегося объектом. вернулся, и вы можете сделать хороший выбор о том, как сделать свой тест. Может помочь что-то подобное:

(Get-S3Object -BucketName "tfsonline-fullbuild-drop")[0] | gm

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...