如何从Azure存储帐户中删除Azure文件共享旧数据? [英] How to remove azure file share old data from the azure storage account?
本文介绍了如何从Azure存储帐户中删除Azure文件共享旧数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
推荐答案
以下脚本递归列出文件共享中的文件/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天)的文件配置删除活动
-
- 搜索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屋!
查看全文