azureazure-blob-storagepolicyretention

How to delete files from blob container that are older than 30 days?


I am looking for a way to delete stored files in a blob container called reports that are older than 30 days or set any other retention policy that would make sense

As far as I see Microsoft only writes about retention policies for Logs and Metadata. Is this possible? How to achieve that?


Solution

  • You can use Storage Lifecycle policy to achieve that.

    #Initialize the following with your resource group and storage account names
    $rgname = ""
    $accountName = ""
    
    #Create a new action object
    $action = Add-AzStorageAccountManagementPolicyAction -BaseBlobAction Delete -daysAfterModificationGreaterThan 2555
    $action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BaseBlobAction TierToArchive -daysAfterModificationGreaterThan 90
    $action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -BaseBlobAction TierToCool -daysAfterModificationGreaterThan 30
    $action = Add-AzStorageAccountManagementPolicyAction -InputObject $action -SnapshotAction Delete -daysAfterCreationGreaterThan 90
    
    # Create a new filter object
    # PowerShell automatically sets BlobType as “blockblob” because it is the only available option currently
    $filter = New-AzStorageAccountManagementPolicyFilter -PrefixMatch ab,cd
    
    #Create a new rule object
    #PowerShell automatically sets Type as “Lifecycle” because it is the only available option currently
    $rule1 = New-AzStorageAccountManagementPolicyRule -Name Test -Action $action -Filter $filter
    
    #Set the policy
    $policy = Set-AzStorageAccountManagementPolicy -ResourceGroupName $rgname -StorageAccountName $accountName -Rule $rule1
    

    https://learn.microsoft.com/en-us/azure/storage/blobs/storage-lifecycle-management-concepts?tabs=azure-portal#add-or-remove-a-policy