追加 BLOB とページ BLOB をブロック BLOB に変換する
- [アーティクル]
-
-
BLOB を変換するには、PowerShell、Azure CLI、または AzCopy を使用して、BLOB を新しい場所にコピーします。 コマンド パラメーターを使用して、ターゲット BLOB がブロック BLOB であることを確認します。 ソース BLOB のすべてのメタデータがターゲット BLOB にコピーされます。
追加 BLOB とページ BLOB を変換する
Windows PowerShell コマンド ウィンドウを開きます。
Connect-AzAccount コマンドを使用して Azure サブスクリプションにサインインし、画面上の指示に従います。
Connect-AzAccount
自分の ID が複数のサブスクリプションに関連付けられている場合は、アクティブなサブスクリプションを、追加 BLOB またはページ BLOB を含むストレージ アカウントのサブスクリプションに設定します。
$context = Get-AzSubscription -SubscriptionId '<subscription-id>'
Set-AzContext $context
<subscription-id>
プレースホルダーの値をサブスクリプションの ID に置き換えます。
New-AzStorageContext コマンドを使用してストレージ アカウント コンテキストを作成します。 -UseConnectedAccount
パラメーターを含めて、データ操作が自分の Microsoft Entra 資格情報を使って実行されるようにしてください。
$ctx = New-AzStorageContext -StorageAccountName '<storage account name>' -UseConnectedAccount
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
ページ BLOB スナップショットをブロック BLOB にコピーするには、パラメーター -DestBlobType
を Block
に設定して、Get-AzStorageBlob コマンドと Copy-AzStorageBlob コマンドを使用します。
$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 の層を変更する」を参照してください。
まず、Azure Cloud Shell を開きます。または、Azure CLI をローカルにインストールした場合は、Windows PowerShell などのコマンド コンソール アプリケーションを開きます。
Note
ローカル環境にインストールされた Azure CLI のバージョンを使用している場合、バージョン 2.44.0 以降を使用していることを確認してください。
自分の ID が複数のサブスクリプションに関連付けられている場合は、アクティブなサブスクリプションを、追加 BLOB またはページ BLOB を含むストレージ アカウントのサブスクリプションに設定します。
az account set --subscription <subscription-id>
<subscription-id>
プレースホルダーの値をサブスクリプションの ID に置き換えます。
az storage blob copy start コマンドを使用し、--destination-blob-type
パラメーターを blockBlob
に設定します。
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>'
az storage blob copy start --account-name $accountName --destination-blob $destBlobName --destination-container $destcontainerName --destination-blob-type BlockBlob --source-blob $srcblobName --source-container $containerName --tier $destTier
ページ BLOB スナップショットをブロック BLOB にコピーするには、--destination-blob-type
パラメーターを blockBlob
に設定し、ソース ページ BLOB スナップショットの URI を指定して、az storage blob copy start コマンドを使用します。
srcPageblobSnapshotUri = '<source page blob snapshot uri>'
destcontainerName = '<destination container name>'
destblobName = '<destination block blob name>'
destTier = '<destination block blob tier>'
az storage blob copy start --account-name $accountName --destination-blob $destBlobName --destination-container $destcontainerName --destination-blob-type BlockBlob --source-uri $srcPageblobSnapshotUri --tier $destTier
警告
--metadata
パラメーター (省略可能) では、既存のメタデータが上書きされます。 したがって、このパラメーターを使用してメタデータを指定した場合、ソース BLOB の元のメタデータはターゲット BLOB にコピーされません。
azcopy copy コマンドを使用します。 ソース パスとターゲット パスを指定します。 blob-type
パラメーターを BlockBlob
に設定します。
azcopy copy 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<append-or-page-blob-name>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<name-of-new-block-blob>' --blob-type BlockBlob --block-blob-tier <destination-tier>
ヒント
--block-blob-tier
パラメーターは省略可能です。 このパラメーターを省略すると、ターゲット BLOB では、既定のアカウント アクセス層設定からその層が推論されます。 ブロック BLOB を作成した後に層を変更するには、「BLOB の層を変更する」を参照してください。
警告
--metadata
パラメーター (省略可能) では、既存のメタデータが上書きされます。 したがって、このパラメーターを使用してメタデータを指定した場合、ソース BLOB の元のメタデータはターゲット BLOB にコピーされません。
関連項目