共用方式為


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>]

Description

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。

範例 10:取得單一 Blob 的 Blob 屬性(範例:ImmutabilityPolicy)

$blobProperties = (Get-AzStorageBlob -Container "ContainerName" -Blob "blob" -Context $ctx).BlobProperties
$blobProperties.ImmutabilityPolicy

ExpiresOn                   PolicyMode
---------                   ----------
9/17/2024 2:49:32 AM +00:00   Unlocked

這個範例命令會取得單一 Blob 的不變性屬性。 您可以從 BlobProperties 属性取得 Blob prTooperties 的詳細清單,包括但不限於:LastModified、ContentLength、ContentHash、BlobType、LeaseState、AccessTier、ETag、ImmutabilityPolicy 等等...若要列出多個 Blob(執行不含 Blob 名稱的 Cmdlet),請使用 ListBlobProperties.Properties而不是 BlobProperties 以提升效能。

參數

-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 版本,根據預設,get 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