省略-blob参数时Get-AzureStorageBlob返回重复Blob的疑问
这种行为是完全符合预期的,核心原因和Blob快照有关
先给你明确结论:你遇到的差异是正常的,从你提供的请求详情里能找到关键线索——请求参数包含include=snapshots%2Cmetadata%2Ccopy,说明这次List Blob操作会返回容器内的Blob及其快照数据。
下面拆解不同场景的表现逻辑:
1. 省略-blob参数时返回两个同名条目
当你不指定具体Blob名称调用Get-AzureStorageBlob时,cmdlet会完整返回API的响应结果:容器里的**基础Blob(Base Blob)加上它的快照(Snapshot)**会被当作两个独立条目展示。它们名称相同,但快照有唯一的快照ID,且ContentType可能和原Blob不同(比如快照创建时原Blob的ContentType和当前状态不一致),所以会显示为两个条目。
你可以用这条命令验证差异:
Get-AzureStorageBlob | Select-Object Name, ContentType, SnapshotTime
那个额外的条目会有具体的SnapshotTime值,而基础Blob的SnapshotTime为$null。
2. 指定-blob名称时只返回一个结果
当你直接指定Blob名称调用Get-AzureStorageBlob时,cmdlet的默认行为是仅返回最新的基础Blob,不会自动包含快照。如果想同时获取快照,需要显式添加-IncludeSnapshot参数:
Get-AzureStorageBlob -Blob "你的Blob名称" -IncludeSnapshot
执行这条命令后,你就能看到和省略-blob参数时一致的两个条目了。
3. Azure Storage Explorer只显示一个条目
Storage Explorer的默认展示逻辑是把快照折叠在对应的基础Blob条目下,你需要点击Blob条目旁的展开箭头,才能看到它的所有快照版本。所以默认状态下你只会看到一个基础Blob条目,这和cmdlet的默认行为是对齐的。
内容的提问来源于stack exchange,提问作者Martin Brandl
相关产品推荐
相关产品推荐

