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"
此範例會使用 MaxCount 和ContinuationToken 參數來列出多個批次中的 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 |