繁体   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