Массовое удаление объектов из BLOB-объектов хранилища Azure, которые старше 'x' - PullRequest
0 голосов
/ 11 июня 2019

Я хочу удалить все файлы из большого двоичного хранилища Azure, которые старше 'x' дней.Я пытаюсь использовать приведенный ниже код, но он не работает:

$StorageAccountName = '<name>'
$StorageAccountKey = '<key>'

$Ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey
Get-AzureStorageBlob -Container "reports" -Context $Ctx -Blob *.csv
where {$_.LastModified -le (get-date).AddDays(-30) } | Remove-AzureStorageBlob

Я ссылался на следующий документ, но запрос не работает для условного удаления. ссылка

Ответы [ 3 ]

1 голос
/ 12 июня 2019

Я предлагаю вам использовать новый модуль Azure PowerShell AZ .

После установки нового модуля AZ попробуйте код ниже:

$accountname="xx" 
$accountkey="xxx"
$ctx = New-AzStorageContext -StorageAccountName $accountname -StorageAccountKey $accountkey

Get-AzStorageBlob -Container "aa1" -Blob *.jpg -Context $ctx | where {$_.LastModified -le (Get-Date).AddDays(-1)} | Remove-AzStorageBlob

После выполнения кода вы можете проверить на портале Azure или использовать командлет Get-AzStorageBlob, чтобы увидеть, все ли указанные файлы удалены. В моем случае все файлы с датой <"1 день назад" удаляются. </p>

enter image description here

1 голос
/ 11 июня 2019

Хранилище Azure имеет функцию «Управление жизненным циклом хранилища BLOB-объектов Azure». https://docs.microsoft.com/en-us/azure/storage/blobs/storage-lifecycle-management-concepts

Для вашего теста вы можете напрямую обратиться https://docs.microsoft.com/en-us/azure/storage/blobs/storage-lifecycle-management-concepts#powershell

$action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterModificationGreaterThan 2555
0 голосов
/ 14 июня 2019

Спасибо, Иван. Я сравнил свой сценарий с вашим и обнаружил, что мне не хватало конвейера до возникновения проблемы. После установки канала я могу удалить файлы в зависимости от состояния. Не нужно было идти в AzureAz. Сценарий, который работает сейчас:

$ StorageAccountName = 'xx' $ StorageAccountKey = 'yyy'

$ ctx = New-AzureStorageContext -StorageAccountName $ StorageAccountName -StorageAccountKey $ StorageAccountKey

Get-AzureStorageBlob -Container "abc" -Blob * .pdf -Context $ ctx | где {$ _. LastModified -le (Get-Date) .AddDays (-4)} | Remove-AzureStorageBlob

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