你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Get-AzStorageBlob

列出容器中的 Blob。

语法

Get-AzStorageBlob
   [[-Blob] <String>]
   [-Container] <String>
   [-IncludeDeleted]
   [-IncludeTag]
   [-MaxCount <Int32>]
   [-ContinuationToken <BlobContinuationToken>]
   [-TagCondition <String>]
   [-Context <IStorageContext>]
   [-ServerTimeoutPerRequest <Int32>]
   [-ClientTimeoutPerRequest <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-ConcurrentTaskCount <Int32>]
   [<CommonParameters>]
Get-AzStorageBlob
   [-Blob] <String>
   [-Container] <String>
   [-IncludeDeleted]
   [-IncludeTag]
   -SnapshotTime <DateTimeOffset>
   [-MaxCount <Int32>]
   [-ContinuationToken <BlobContinuationToken>]
   [-TagCondition <String>]
   [-Context <IStorageContext>]
   [-ServerTimeoutPerRequest <Int32>]
   [-ClientTimeoutPerRequest <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-ConcurrentTaskCount <Int32>]
   [<CommonParameters>]
Get-AzStorageBlob
   [-Blob] <String>
   [-Container] <String>
   [-IncludeDeleted]
   [-IncludeTag]
   -VersionId <String>
   [-MaxCount <Int32>]
   [-ContinuationToken <BlobContinuationToken>]
   [-TagCondition <String>]
   [-Context <IStorageContext>]
   [-ServerTimeoutPerRequest <Int32>]
   [-ClientTimeoutPerRequest <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-ConcurrentTaskCount <Int32>]
   [<CommonParameters>]
Get-AzStorageBlob
   [-Prefix <String>]
   [-Container] <String>
   [-IncludeDeleted]
   [-IncludeVersion]
   [-IncludeTag]
   [-MaxCount <Int32>]
   [-ContinuationToken <BlobContinuationToken>]
   [-Context <IStorageContext>]
   [-ServerTimeoutPerRequest <Int32>]
   [-ClientTimeoutPerRequest <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-ConcurrentTaskCount <Int32>]
   [<CommonParameters>]

说明

Get-AzStorageBlob cmdlet 列出 Azure 存储帐户中指定容器中的 blob。

示例

示例 1:按 Blob 名称获取 Blob

Get-AzStorageBlob -Container "ContainerName" -Blob blob*

此命令使用 blob 名称和通配符来获取 Blob。

示例 2:使用管道获取容器中的 Blob

Get-AzStorageContainer -Name container* | Get-AzStorageBlob -IncludeDeleted

Container Uri: https://storageaccountname.blob.core.windows.net/container1

Name                 BlobType  Length          ContentType                    LastModified         AccessTier SnapshotTime         IsDeleted 
----                 --------  ------          -----------                    ------------         ---------- ------------         --------- 
test1                BlockBlob 403116          application/octet-stream       2017-11-08 07:53:19Z            2017-11-08 08:19:32Z True      
test1                BlockBlob 403116          application/octet-stream       2017-11-08 09:00:29Z                                 True      
test2                BlockBlob 403116          application/octet-stream       2017-11-08 07:53:00Z                                 False

此命令使用管道获取容器中的所有 Blob(包括已删除状态中的 Blob)。

示例 3:按名称前缀获取 Blob

Get-AzStorageBlob -Container "ContainerName" -Prefix "blob"

此命令使用名称前缀来获取 Blob。

示例 4:列出多个批中的 Blob

$MaxReturn = 10000
$ContainerName = "abc"
$Total = 0
$Token = $Null
do
 {
     $Blobs = Get-AzStorageBlob -Container $ContainerName -MaxCount $MaxReturn  -ContinuationToken $Token
     $Total += $Blobs.Count
     if($Blobs.Length -le 0) { Break;}
     $Token = $Blobs[$blobs.Count -1].ContinuationToken;
 }
 While ($null -ne $Token)
Echo "Total $Total blobs in container $ContainerName"

此示例使用 MaxCountContinuationToken 参数列出多个批处理中的Azure 存储 blob。 前四个命令将值分配给在示例中要使用的变量。 第五个命令指定一个 Do-While 语句,该语句使用 Get-AzStorageBlob cmdlet 获取 Blob。 该语句包括存储在$Token变量中的延续标记。 $Token循环运行时更改值。 要了解详情,请键入 Get-Help About_Do。 最后一个命令使用 Echo 命令显示总计。

示例 5:获取容器中的所有 Blob 包括 Blob 版本

Get-AzStorageBlob -Container "containername"  -IncludeVersion

AccountName: storageaccountname, ContainerName: containername

Name                 BlobType  Length          ContentType                    LastModified         AccessTier SnapshotTime                 IsDeleted  VersionId                     
----                 --------  ------          -----------                    ------------         ---------- ------------                 ---------  ---------                     
blob1                BlockBlob 2097152         application/octet-stream       2020-07-06 06:56:06Z Hot                                     False      2020-07-06T06:56:06.2432658Z  
blob1                BlockBlob 2097152         application/octet-stream       2020-07-06 06:56:06Z Hot        2020-07-06T06:56:06.8588431Z False                                    
blob1                BlockBlob 2097152         application/octet-stream       2020-07-06 06:56:06Z Hot                                     False      2020-07-06T06:56:06.8598431Z *  
blob2                BlockBlob 2097152         application/octet-stream       2020-07-03 16:19:16Z Hot                                     False      2020-07-03T16:19:16.2883167Z  
blob2                BlockBlob 2097152         application/octet-stream       2020-07-03 16:19:35Z Hot                                     False      2020-07-03T16:19:35.2381110Z *

此命令获取容器中的所有 Blob 包括 Blob 版本。

示例 6:获取单个 Blob 版本

Get-AzStorageBlob -Container "containername" -Blob blob2 -VersionId "2020-07-03T16:19:16.2883167Z"

AccountName: storageaccountname, ContainerName: containername

Name                 BlobType  Length          ContentType                    LastModified         AccessTier SnapshotTime                 IsDeleted  VersionId                     
----                 --------  ------          -----------                    ------------         ---------- ------------                 ---------  ---------                     
blob2                BlockBlob 2097152         application/octet-stream       2020-07-03 16:19:16Z Hot                                     False      2020-07-03T16:19:16.2883167Z

此命令使用 VersionId 获取单个 Blob 版本。

示例 7:获取单个 Blob 快照

Get-AzStorageBlob -Container "containername" -Blob blob1 -SnapshotTime "2020-07-06T06:56:06.8588431Z"

AccountName: storageaccountname, ContainerName: containername

Name                 BlobType  Length          ContentType                    LastModified         AccessTier SnapshotTime                 IsDeleted  VersionId                     
----                 --------  ------          -----------                    ------------         ---------- ------------                 ---------  ---------                     
blob1                BlockBlob 2097152         application/octet-stream       2020-07-06 06:56:06Z Hot        2020-07-06T06:56:06.8588431Z False

此命令使用 SnapshotTime 获取单个 Blob 快照。

示例 8:获取 Blob 包括 Blob 标记

$blobs = Get-AzStorageBlob -Container "containername" -IncludeTag

$blobs

   AccountName: storageaccountname, ContainerName: containername

Name                 BlobType  Length          ContentType                    LastModified         AccessTier SnapshotTime                 IsDeleted  VersionId                     
----                 --------  ------          -----------                    ------------         ---------- ------------                 ---------  ---------                     
testblob             BlockBlob 2097152         application/octet-stream       2020-07-23 09:35:02Z Hot                                     False      2020-07-23T09:35:02.8527357Z *
testblob2            BlockBlob 2097152         application/octet-stream       2020-07-23 09:35:04Z Hot                                     False      2020-07-23T09:35:04.0856187Z *


$blobs[0].Tags
Name          Value 
----          -----
tag1          value1
tag2          value2

此命令列出包含 blob 标记的容器中的 blob,并显示第一个 Blob 的标记。

示例 9:获取具有 blob 标记条件的单个 Blob

Get-AzStorageBlob -Container "containername" -Blob testblob -TagCondition """tag1""='value1'"

AccountName: storageaccountname, ContainerName: containername

Name                 BlobType  Length          ContentType                    LastModified         AccessTier SnapshotTime                 IsDeleted  VersionId                     
----                 --------  ------          -----------                    ------------         ---------- ------------                 ---------  ---------                     
testblob             BlockBlob 2097152         application/octet-stream       2020-07-23 09:35:02Z Hot                                     False      2020-07-23T09:35:02.8527357Z *

此命令获取具有 blob 标记条件的单个 Blob。 仅当 blob 包含名为“tag1”和值“value1”的标记时,该 cmdlet 才会成功,否则 cmdlet 将失败,错误代码为 412。

参数

-Blob

指定可用于通配符搜索的名称或名称模式。 如果未指定 Blob 名称,则 cmdlet 会列出指定容器中的所有 Blob。 如果为此参数指定了值,则 cmdlet 将列出所有与此参数匹配的名称的 blob。 此参数支持字符串中的任意位置的通配符。

类型:String
Position:0
默认值:None
必需:True
接受管道输入:False
接受通配符:True

-ClientTimeoutPerRequest

指定一个服务请求的客户端超时间隔(以秒为单位)。 如果上一次调用在指定的时间间隔内失败,则此 cmdlet 将重试请求。 如果此 cmdlet 在间隔过前未收到成功的响应,则此 cmdlet 将返回错误。

类型:Nullable<T>[Int32]
别名:ClientTimeoutPerRequestInSeconds
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ConcurrentTaskCount

指定最大并发网络调用数。 可以使用此参数通过指定并发网络调用的最大数目来限制本地 CPU 和带宽使用量的并发性。 指定的值是绝对计数,不乘以核心计数。 此参数可帮助减少低带宽环境中的网络连接问题,例如每秒 100 千比特。 默认值为 10。

类型:Nullable<T>[Int32]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Container

指定容器的名称。

类型:String
别名:N, Name
Position:1
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-Context

指定要从中获取 Blob 列表的 Azure 存储帐户。 可以使用 New-AzStorageContext cmdlet 创建存储上下文。

类型:IStorageContext
Position:Named
默认值:None
必需:False
接受管道输入:True
接受通配符:False

-ContinuationToken

指定 Blob 列表的延续标记。 使用此参数和 MaxCount 参数列出多个批处理中的 Blob。

类型:BlobContinuationToken
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DefaultProfile

用于与 Azure 通信的凭据、帐户、租户和订阅。

类型:IAzureContextContainer
别名:AzureRmContext, AzureCredential
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-IncludeDeleted

包括已删除的 Blob,默认情况下,获取 Blob 不包括已删除的 Blob。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-IncludeTag

包括 Blob 标记,默认情况下,获取 Blob 不包括 Blob 标记。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-IncludeVersion

仅当此参数存在时,才会列出 Blob 版本,默认情况下,获取 Blob 不包含 Blob 版本。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MaxCount

指定此 cmdlet 返回的最大对象数。

类型:Nullable<T>[Int32]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Prefix

指定要获取的 Blob 名称的前缀。 此参数不支持使用正则表达式或通配符进行搜索。 这意味着,如果容器只有名为“My”、“MyBlob1”和“MyBlob2”的 Blob,并且你指定了“-Prefix My*”,则 cmdlet 将不返回任何 blob。 但是,如果指定“-Prefix My”,cmdlet 将返回“My”、“MyBlob1”和“MyBlob2”。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ServerTimeoutPerRequest

指定请求的服务端超时间隔(以秒为单位)。 如果服务处理请求之前指定的间隔已过,则存储服务将返回错误。

类型:Nullable<T>[Int32]
别名:ServerTimeoutPerRequestInSeconds
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-SnapshotTime

Blob SnapshotTime

类型:Nullable<T>[DateTimeOffset]
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-TagCondition

用于检查匹配条件的可选标记表达式语句。 Blob 标记与给定表达式不匹配时,blob 请求将失败。 请参阅 https://learn.microsoft.com/en-us/rest/api/storageservices/specifying-conditional-headers-for-blob-service-operations#tags-conditional-operations 中的详细信息。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-VersionId

Blob VersionId

类型:String
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

输入

String

IStorageContext

输出

AzureStorageBlob