如何从Azure存储帐户中删除Azure文件共享旧数据? [英] How to remove azure file share old data from the azure storage account?

查看:19
本文介绍了如何从Azure存储帐户中删除Azure文件共享旧数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有3个月的旧数据存储在Azure存储帐户中?现在我想删除数据 如果>;=30天

推荐答案

以下脚本递归列出文件共享中的文件/fileDir,并删除超过14天的文件。您可以指定所需的天数限制。 引用自线程here

有关删除活动前的最佳做法,请参阅this

$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() 
 } 


(OR)

可以按照以下步骤从Azure Data Factory(ADF)配置删除活动。这需要通过提供帐户名、文件共享名称和路径(如果需要)将您的Azure存储帐户与ADF链接。

  • 部署ADF(如果尚未配置):

  • 打开ADF并创建任意名称的管道。

The Process is我们获取所选存储帐户中文件共享的元数据&>循环访问它们&>为其中超过30天(或某些x天)的文件配置删除活动

    1. 搜索GET META DATA&>选择并拖动以放置在该区域中 显示并命名该文件。2)然后导航到数据集(此数据集 指向存储帐户中的文件),选择新建。所以选择蔚蓝 文件存储&>命名3)>;>;选择格式为CSV 4)>;>;链接您的帐户 通过设置属性>;提供文件路径。

  • 要获取早于或等于30天的文件,可以配置EndTime 作为@adddays(utcnow(),-30)

  • 现在我们必须使用foreach循环来迭代 文件。从活动中拖放foreach循环,并将ARRARED行与GET METADATA连接/链接。

  • 在"设置"中,勾选"顺序"框以按顺序迭代文件。 子项目是getMETADATA OUTPUT JSON的属性,该属性具有数组 对象的数量。因此为项目选择动态内容并配置为 @activity("Get old files").output.childItems并单击 完成。(此处获取旧文件是我创建的获取活动的名称 以前)

  • 在Foreach活动中,编辑活动并设置删除 活动如下。

  • 转到我们之前链接文件存储的数据集 帐户。

  • 创建文件名参数并将其链接到删除活动的方式 通过将该文件路径选择为添加文件路径的动态内容 @dataset().FileName

  • 然后转到删除管道并添加文件名,如图所示。

  • 您还可以添加日志设置以链接帐户并查看活动 在调试路径之后发生。

其他参照clean-up-files-by-built-in-delete-activity-in-azure-data-factory/

这篇关于如何从Azure存储帐户中删除Azure文件共享旧数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆