【问题标题】:How to get list of Azure container files?如何获取 Azure 容器文件列表?
【发布时间】:2020-10-21 19:05:38
【问题描述】:

我正在编写 PS 脚本来列出所有存储帐户,其中包含修改日期小于 的文件。

我能够列出所有 SA 容器,这没什么大不了的,但我不确定如何进一步列出特定容器中的所有文件

$storageAccCtx = (Get-AzStorageAccount -Name acc_name -ResourceGroupName acc_rg).Context

Get-AzStorageContainer -Context $storageAccCtx

我找不到任何相关的 cmdlet。

谁能告诉我接下来应该使用什么?谢谢。

【问题讨论】:

    标签: azure powershell azure-storage-account


    【解决方案1】:

    拥有 StorageContext 后,您可以在 Azure 存储管理 Cmdlet 下方使用它来列出所有 BlockBlob。

    Get-AzStorageBlob -Container containerName -Context $storageAccCtx
    

    要获取所有 Azure 存储管理 Cmdlet 的列表,请遵循此文档https://docs.microsoft.com/en-us/powershell/module/az.storage/?view=azps-4.8.0

    【讨论】:

    • 非常感谢,会查收的。
    【解决方案2】:

    您可以使用 Get-AzStorageBlob 列出存储容器中的 blob,该 cmdlet 记录在 here。在脚本中,您可以按如下方式使用此 cmdlet 来返回所有早于特定日期的 blob:

    $CutOffDate = Get-Date -Year 2020 -Month 10 -Day 19
    $OldBlobs = @()
    $StorageAccounts = Get-AzStorageAccount
    foreach ($StorageAccount in $StorageAccounts) {
        $Containers = Get-AzStorageContainer -Context $StorageAccount.Context
        foreach ($Container in $Containers) {
            $ContainerBlobs = Get-AzStorageBlob -Container $Container.Name -Context $StorageAccount.Context
            $OldBlobs += $ContainerBlobs | Where-Object { $_.LastModified -lt $CutOffDate }
        }
    }
    $OldBlobs
    

    【讨论】:

    • 看起来很有希望,感谢您提供如此完整且内容丰富的答案。明天去看看。
    • 为什么我们需要在每次迭代中删除一个变量,我们每次都用 $ContainerBlobs 调用一个新变量,不是吗?
    • 这是为了确保如果 Get-AzStorageBlob 返回 null,则该变量不会保留其先前的值,这最终会报告重复的结果。我刚刚测试过,没有必要,所以我删除了那行
    猜你喜欢
    • 1970-01-01
    • 2014-06-22
    • 2022-01-15
    • 2015-11-10
    • 2020-07-04
    • 2020-10-09
    • 2016-04-09
    • 2016-03-09
    相关资源
    最近更新 更多