簡體   English   中英

如何從 azure 存儲帳戶中刪除 azure 文件共享舊數據?

[英]How to remove azure file share old data from the azure storage account?

我有 3 個月的舊數據存儲在 azure 存儲帳戶上? 現在我想刪除數據,如果它 >= 30 天在此處輸入圖片說明

以下腳本以遞歸方式列出文件共享中的文件/FileDir 並刪除超過 30 天的文件。您可以提供所需的天數限制。 這里的線程引用。

在刪除活動之前,請參閱以獲得最佳實踐

 $ctx = New-AzStorageContext -StorageAccountName $accountName -StorageAccountKey $key $shareName = <shareName> $DirIndex = 0 $dirsToList = New-Object System.Collections.Generic.List[System.Object] # Get share root Dir $shareroot = Get-AzStorageFile -ShareName $shareName -Path . -context $ctx $dirsToList += $shareroot # List files recursively and remove file older than 14 days While ($dirsToList.Count -gt $DirIndex) { $dir = $dirsToList[$DirIndex] $DirIndex ++ $fileListItems = $dir | Get-AzStorageFile $dirsListOut = $fileListItems | where {$_.GetType().Name -eq "AzureStorageFileDirectory"} $dirsToList += $dirsListOut $files = $fileListItems | where {$_.GetType().Name -eq "AzureStorageFile"} foreach($file in $files) { # Fetch Attributes of each file and output $task = $file.CloudFile.FetchAttributesAsync() $task.Wait() # remove file if it's older than 14 days. if ($file.CloudFile.Properties.LastModified -lt (Get-Date).AddDays(-14)) { ## print the file LMT # $file | Select @{ Name = "Uri"; Expression = { $_.CloudFile.SnapshotQualifiedUri} }, @{ Name = "LastModified"; Expression = { $_.CloudFile.Properties.LastModified } } # remove file $file | Remove-AzStorageFile } } #Debug log # Write-Host $DirIndex $dirsToList.Length $dir.CloudFileDirectory.SnapshotQualifiedUri.ToString() }


(要么)

可以按照以下步驟從Azure 數據工廠配置刪除活動。這需要通過提供帳戶名稱、文件共享名稱和路徑(如果需要)將 Azure 存儲帳戶與 ADF 相關聯。

  • 如果尚未配置,請部署 ADF:

f1

  • 打開 ADF 並創建一個任意名稱的 PipeLine。

f2

Process is我們在選定的存儲帳戶中獲取文件共享的元數據>遍歷它們>為其中超過 30 天(或說一些 x 天)的文件配置刪除活動

    1. 搜索獲取元數據>>選擇並拖動以放置在顯示的區域中並命名文件。 2)然后導航到數據集(此數據集指向存儲帳戶中的文件),選擇新的。 所以選擇azure file storage>Name it 3) >>選擇格式為csv 4)>>通過設置屬性鏈接您的帳戶>給出文件路徑。

f3

  • 要獲取早於或等於 30 天的文件,您可以將結束時間配置為@adddays(utcnow(),-30)

在此處輸入圖片說明

  • 現在我們必須使用 foreach 循環來遍歷文件數組。 從活動中拖放 foreach 循環並將其與獲取元數據連接。

f5

  • 在設置中,勾選標記順序框以按順序迭代文件。 childItems 是具有對象數組的 getmetadata 輸出 JSON 的屬性。 因此,為 Items 選擇 Dynamic content 並配置為@activity("Get old files").output.childItems ,然后單擊完成。 (這里獲取舊文件是我之前創建的獲取活動的名稱)

f6

  • 在 Foreach 活動中,編輯活動並設置刪除活動,如下所示。

在此處輸入圖片說明 在此處輸入圖片說明

  • 轉到我們之前鏈接文件存儲帳戶的數據集。

f9

  • 創建文件名參數並將其鏈接到刪除活動,方法是選擇該文件路徑為@dataset().FileName ,為文件路徑添加動態內容

f10

  • 然后轉到刪除管道並添加文件名,如圖所示。

在此處輸入圖片說明

  • 您還可以將日志設置添加到鏈接帳戶並查看路徑調試后發生的活動。

在此處輸入圖片說明

其他參考clean-up-files-by-built-in-delete-activity-in-azure-data-factory/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM