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

将追加 blob 和页 blob 转换为块 blob

若要转换 blob,请使用 PowerShell、Azure CLI 或 AzCopy 将它们复制到新位置。 你将使用命令参数来确保目标 blob 是块 blob。 源 blob 中的所有元数据都复制到目标 blob。

转换追加 blob 和页 blob

  1. 打开 Windows PowerShell 命令窗口。

  2. 使用 Connect-AzAccount 命令登录到 Azure 订阅,然后按屏幕说明操作。

    Connect-AzAccount
    
  3. 如果你的标识与多个订阅相关联,请将活动订阅设置为包含追加 blob 或页 blob 的存储帐户的订阅。

    $context = Get-AzSubscription -SubscriptionId '<subscription-id>'
    Set-AzContext $context
    

    <subscription-id> 占位符值替换为你的订阅 ID。

  4. 使用 New-AzStorageContext 命令创建存储帐户上下文。 包含 -UseConnectedAccount 参数,以便使用 Microsoft Entra 凭据执行数据操作。

    $ctx = New-AzStorageContext -StorageAccountName '<storage account name>' -UseConnectedAccount
    
  5. 使用 Copy-AzStorageBlob 命令并将 -DestBlobType 参数设置为 Block

    $containerName = '<source container name>'
    $srcblobName = '<source append or page blob name>'
    $destcontainerName = '<destination container name>'
    $destblobName = '<destination block blob name>'
    $destTier = '<destination block blob tier>'
    
    Copy-AzStorageBlob -SrcContainer $containerName -SrcBlob $srcblobName -Context $ctx -DestContainer $destcontainerName -DestBlob $destblobName -DestContext $ctx -DestBlobType Block -StandardBlobTier $destTier
    
  6. 若要将页 blob 快照复制到块 blob,请使用 Get-AzStorageBlobCopy-AzStorageBlob 命令,且 -DestBlobType 参数为 Block

    $containerName = '<source container name>'
    $srcPageBlobName = '<source page blob name>'
    $srcPageBlobSnapshotTime = '<snapshot time of source page blob>'
    $destContainerName = '<destination container name>'
    $destBlobName = '<destination block blob name>'
    $destTier = '<destination block blob tier>'
    
     Get-AzStorageBlob -Container $containerName -Blob $srcPageBlobName -SnapshotTime $srcPageBlobSnapshotTime -Context $ctx | Copy-AzStorageBlob -DestContainer $destContainerName -DestBlob $destBlobName -DestBlobType block -StandardBlobTier $destTier -DestContext $ctx 
    
    

    提示

    -StandardBlobTier 参数是可选的。 如果省略该参数,则目标 blob 将从默认帐户访问层设置推断其层。 若要在创建块 blob 后更改层,请参阅更改 blob 的层

另请参阅