Azure 文件存储删除计算

Posted

技术标签:

【中文标题】Azure 文件存储删除计算【英文标题】:Azure File Storage deletion calculation 【发布时间】:2021-10-18 19:06:29 【问题描述】:

我正在尝试从 Azure 文件存储中删除当月第一天或更早的 30 + 1 的文件。 我有基本的列表并删除有效的脚本。我的主要问题是如何计算 if 早于语句?

$resourceGroupName=""  
$storageAccName=""  
$fileShareName=""  
$directoryPath="" 
## Function to Lists directories and files  
Function GetFiles  
  
    Write-Host -ForegroundColor Green "Lists directories and files.."    
    ## Get the storage account context  
    $ctx=(Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccName).Context  
    ## List directories  
    $directories=Get-AZStorageFile -Context $ctx -ShareName $fileShareName  
    ## Loop through directories  
    foreach($directory in $directories)  
      
        write-host -ForegroundColor Magenta " Directory Name: " $directory.Name  
        $files=Get-AZStorageFile -Context $ctx -ShareName $fileShareName -Path $directory.Name | Get-AZStorageFile  
        ## Loop through all files and display  
        foreach ($file in $files)  
          
            write-host -ForegroundColor Yellow $file.Name  
          
      
  
  
GetFiles
$context = ""
Remove-AzStorageFile -ShareName "name" -Path "path" -Context $context

Get-ChildItem -Path $path -Recurse -Force | Where-Object  !$_.PSIsContainer -and $_.CreationTime -lt $limit  | Remove-Item -Force

【问题讨论】:

您始终可以通过[datetime]::Today.AddDays(([datetime]::Today.Day - 1)*-1) 获得当月的第一天。我不熟悉“30 + 1”这个词。您只是在寻找超过一个月的文件吗?也许$file.properties.changetime -lt [datetime]::Today.AddDays(([datetime]::Today.Day - 1)*-1).addmonths(-1) 或类似的东西? 【参考方案1】:

我们确实有 AZ CLI 命令来删除超过 XX 天的文件。

// 删除旧文件块

$filelist = az storage file list -s $myshare --account-name $accountName --account-key $accountKey
$fileArray = $filelist | ConvertFrom-Json
foreach ($file in $fileArray | Where-Object $_.properties.lastModified.DateTime -lt ((Get-Date).AddDays(-31)))

    $removefile = $file.name
    if ($removefile -ne $null)
    
        Write-Host "Removing file $removefile"
        az storage file delete -s $myshare -p $removefile
    

参考 So Thread:使用 Azure Cli 删除 Azure 文件共享中的旧文件 - 代码日志

【讨论】:

以上是关于Azure 文件存储删除计算的主要内容,如果未能解决你的问题,请参考以下文章

按计划删除 Azure 存储中的所有文件

Azure 文件存储在删除本地副本之前上传后验证文件

下载后如何从 azure blob 存储中删除文件

使用服务帐户从 Azure Blob 存储中批量删除文件

使用 Powershell 从 Azure 存储子容器中删除所有文件

如何在说 x 天后定期从 azure 文件共享中删除文件?