Anda dapat mengatur tingkat akses blob dengan salah satu cara berikut:
- Dengan mengatur tingkat akses online default untuk akun penyimpanan. Blob di akun akan mewarisi tingkat akses ini kecuali Anda secara eksplisit menggantikan pengaturan untuk blob tertentu.
- Dengan secara eksplisit mengatur tingkat blob saat diunggah. Anda dapat membuat blob di tingkat panas, sejuk, dingin, atau arsip.
- Mengubah tingkat blob yang ada melalui operasi Atur Tingkat Blob. Biasanya, Anda akan menggunakan operasi ini untuk berpindah dari tingkat yang lebih panas ke yang lebih dingin.
- Menyalin blob menggunakan operasi Salin Blob. Biasanya, Anda akan menggunakan operasi ini untuk berpindah dari tingkat yang lebih dingin ke yang lebih panas.
Artikel ini menjelaskan cara mengelola blob di tingkat akses online. Untuk informasi selengkapnya tentang cara memindahkan blob ke tingkat arsip, lihat Mengarsipkan blob. Untuk informasi selengkapnya tentang cara merehidrasi blob dari lapisan arsip, lihat Merehidrasi blob yang diarsipkan ke lapisan online.
Untuk informasi selengkapnya tentang tingkat akses untuk data blob, lihat Tingkat akses untuk data blob.
Mengatur tingkat akses default untuk akun penyimpanan
Pengaturan tingkat akses default untuk akun penyimpanan v2 tujuan umum menentukan di tingkat online mana blob baru dibuat secara default. Anda dapat mengatur tingkat akses default untuk akun penyimpanan v2 tujuan umum pada saat membuat akun atau dengan memperbarui konfigurasi akun yang ada.
Saat Anda mengubah pengaturan tingkat penyimpanan default untuk akun penyimpanan tujuan umum v2 yang ada, perubahan tersebut berlaku untuk semua blob di akun yang tingkat penyimpanannya belum ditetapkan secara eksplisit. Mengubah tingkat akses default dapat berdampak pada penagihan. Untuk detail, lihat Pengaturan tingkat akses akun default.
Untuk mengatur tingkat akses default di akun penyimpanan pada waktu pembuatan di portal Microsoft Azure, ikuti langkah-langkah berikut:
Masuk ke halaman Akun penyimpanan dan pilih tombol Buat.
Lengkapi tab Dasar-dasar.
Pada tab Tingkat Lanjut, di bawah Penyimpanan Blob, atur Tingkat Akses ke Panas, Sejuk atau Dingin. Pengaturan default adalah Panas.
Pilih Tinjau + Buat untuk memvalidasi pengaturan dan membuat akun penyimpanan Anda.
Untuk memperbarui tingkat akses default untuk akun penyimpanan yang ada di portal Microsoft Azure, ikuti langkah-langkah berikut:
Buka akun penyimpanan di portal Azure.
Di bawah Pengaturan, pilih Konfigurasi.
Temukan pengaturan Tingkat akses Blob (default), dan pilih Panas, Dingin, atau Dingin. Pengaturan default adalah Panas, jika Anda belum pernah mengatur properti ini sebelumnya.
Simpan perubahan Anda.
Untuk mengubah pengaturan tingkat akses default di akun penyimpanan dengan PowerShell, hubungi perintah Set-AzStorageAccount yang menentukan tingkat akses default baru.
$rgName = <resource-group>
$accountName = <storage-account>
# Change the storage account tier to cool
Set-AzStorageAccount -ResourceGroupName $rgName -Name $accountName -AccessTier Cool
Untuk mengubah pengaturan tingkat akses default di akun penyimpanan dengan PowerShell, hubungi perintah Set-AzStorageAccount yang menentukan tingkat akses default baru.
# Change the storage account tier to cool
az storage account update \
--resource-group <resource-group> \
--name <storage-account> \
--access-tier Cool
Mengatur tingkat blob saat diunggah
Saat Anda mengunggah blob ke Azure Storage, Anda memiliki dua opsi untuk mengatur tingkat blob saat diunggah:
- Anda dapat secara eksplisit menentukan tingkat di mana blob akan dibuat. Pengaturan ini mengambil alih tingkat akses default untuk akun penyimpanan. Anda dapat mengatur tingkat untuk blob atau sekumpulan blob yang diunggah menjadi hangat, sejuk, dingin, atau arsip.
- Anda dapat mengunggah blob tanpa menentukan tingkat. Dalam hal ini, blob akan dibuat di tingkat akses default yang ditentukan untuk akun penyimpanan (panas atau dingin).
Jika Anda mengunggah blob baru yang menggunakan cakupan enkripsi, Anda tidak dapat mengubah tingkat penyimpanan untuk blob tersebut.
Bagian berikut menjelaskan cara menentukan bahwa blob diunggah ke tingkat panas atau dingin. Untuk informasi selengkapnya tentang mengarsipkan blob saat diunggah, lihat Mengarsipkan blob saat diunggah.
Mengunggah blob ke tingkat online tertentu
Untuk membuat blob di tingkat panas, sejuk, atau dingin, tentukan tingkat tersebut saat Anda membuat blob. Tingkat akses yang ditentukan saat pengunggahan mengambil alih tingkat akses default untuk akun penyimpanan.
Untuk mengunggah blob atau set blob ke tingkat tertentu dari portal Microsoft Azure, ikuti langkah-langkah berikut:
Arahkan ke kontainer target.
Pilih tombol Unggah.
Pilih file yang akan diunggah.
Perluas bagian Tingkat Lanjut, dan atur tingkat Akses ke Panas atau Dingin.
Pilih tombol Unggah.
Untuk mengunggah blob atau set blob ke tingkat tertentu dengan PowerShell, panggil perintah Set-AzStorageBlobContent, seperti yang ditunjukkan di contoh berikut. Ingatlah untuk mengganti nilai tempat penampung dalam tanda kurung dengan nilai Anda sendiri:
$rgName = <resource-group>
$storageAccount = <storage-account>
$containerName = <container>
# tier can be hot, cool, cold, or archive
$tier = <tier>
# Get context object
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Create new container.
New-AzStorageContainer -Name $containerName -Context $ctx
# Upload a single file named blob1.txt to the cool tier.
Set-AzStorageBlobContent -Container $containerName `
-File "blob1.txt" `
-Blob "blob1.txt" `
-Context $ctx `
-StandardBlobTier Cool
# Upload the contents of a sample-blobs directory to the cool tier, recursively.
Get-ChildItem -Path "C:\sample-blobs" -File -Recurse |
Set-AzStorageBlobContent -Container $containerName `
-Context $ctx `
-StandardBlobTier $tier
Untuk mengunggah blob ke tingkat tertentu dengan Azure CLI, panggil perintah az storage blob upload, seperti yang ditunjukkan di contoh berikut. Ingatlah untuk mengganti nilai tempat penampung yang ada di dalam tanda kurung dengan nilai Anda sendiri. Gantilah tempat penampung <tier>
dengan hot
, cool
, cold
, atau archive
.
az storage blob upload \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--file <file> \
--tier <tier> \
--auth-mode login
Untuk mengunggah satu set blob ke tingkat tertentu dengan Azure CLI, panggil perintah az storage blob upload-batch, seperti yang ditunjukkan di contoh berikut. Ingatlah untuk mengganti nilai yang ada di dalam tanda kurung dengan nilai Anda sendiri. Gantilah placeholder <tier>
dengan hot
, cool
, cold
, atau archive
.
az storage blob upload-batch \
--destination <container> \
--source <source-directory> \
--account-name <storage-account> \
--tier <tier> \
--auth-mode login
Untuk mengunggah blob ke tingkat tertentu dengan menggunakan AzCopy, gunakan perintah azcopy copy dan atur parameter --block-blob-tier
ke hot
, cool
, atau archive
.
Catatan
Contoh ini menyertakan argumen jalur dengan tanda kutip tunggal (''). Gunakan tanda kutip tunggal di semua shell perintah kecuali Windows Command Shell (cmd.exe). Jika Anda menggunakan Windows Command Shell (cmd.exe), sertakan argumen jalur dengan tanda kutip ganda ("") dan bukan tanda kutip tunggal ('').
Contoh ini mengecualikan token SAS karena mengasumsikan bahwa Anda telah memberikan kredensial otorisasi dengan menggunakan ID Microsoft Entra. Lihat artikel Mulai Menggunakan AzCopy untuk mempelajari cara agar Anda dapat memberikan informasi masuk otorisasi ke layanan penyimpanan.
azcopy copy '<local-file-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>' --block-blob-tier <blob-tier>
Untuk mengunggah sekumpulan blob ke tingkat tertentu dengan menggunakan AzCopy, lihat direktori lokal atau konten direktori lokal, lalu tambahkan --recursive=true
ke perintah.
Contoh direktori lokal
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>' --block-blob-tier <blob-tier> --recursive=true
Contoh konten direktori lokal
azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>' --block-blob-tier <blob-tier> --recursive=true
Unggah sebuah blob ke tier default
Akun penyimpanan memiliki pengaturan tingkat akses default yang menunjukkan di tingkat online mana blob baru dibuat. Pengaturan tingkat akses default dapat diatur ke hot atau cool. Perilaku pengaturan ini sedikit berbeda tergantung pada jenis akun penyimpanan:
- Tingkat akses default untuk akun penyimpanan general-purpose v2 baru diatur ke tingkat panas. Anda dapat mengubah pengaturan tingkat akses default saat membuat akun penyimpanan atau setelah akun tersebut dibuat.
- Saat membuat akun Blob Storage warisan, Anda harus menentukan pengaturan tingkat akses default sebagai panas atau dingin saat membuat akun penyimpanan. Anda dapat mengubah pengaturan tingkat akses bawaan untuk akun penyimpanan setelah akun tersebut dibuat.
Blob yang tidak memiliki tingkat yang ditetapkan secara eksplisit menyimpulkan tingkatannya dari pengaturan tingkat akses akun default. Anda dapat menentukan apakah tingkat akses blob disimpulkan dengan menggunakan portal Microsoft Azure, PowerShell, atau Azure CLI.
Jika tingkat akses blob disimpulkan dari pengaturan tingkat akses akun default, maka portal Azure menampilkan tingkat akses sebagai Panas (disimpulkan), Dingin (disimpulkan), atau Dingin (disimpulkan).
Untuk menentukan tingkat akses blob dan apakah itu disimpulkan dari Azure PowerShell, ambil blob, lalu periksa properti AccessTier dan AccessTierInferred.
$rgName = "<resource-group>"
$storageAccount = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
# Get the storage account context.
$ctx = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
# Get the blob from the service.
$blob = Get-AzStorageBlob -Context $ctx -Container $containerName -Blob $blobName
# Check the AccessTier and AccessTierInferred properties.
# If the access tier is inferred, that property returns true.
$blob.BlobProperties.AccessTier
$blob.BlobProperties.AccessTierInferred
Untuk menentukan tingkat penyimpanan blob dan apakah itu disimpulkan dari Azure CLI, ambil blob, lalu periksa properti blobTier dan blobTierInferred-nya.
az storage blob show \
--container-name <container> \
--name <blob> \
--account-name <storage-account> \
--query '[properties.blobTier, properties.blobTierInferred]' \
--output tsv \
--auth-mode login
Memindahkan sebuah blob ke tingkat penyimpanan online yang berbeda
Anda dapat memindahkan blob ke tingkat online yang berbeda dengan salah satu dari dua cara berikut:
- Dengan mengubah tingkat akses.
- Dengan menyalin blob ke tingkat online yang berbeda.
Untuk informasi selengkapnya tentang masing-masing opsi ini, lihat Mengatur atau mengubah tingkat blob.
Gunakan PowerShell, Azure CLI, AzCopy v10, atau salah satu pustaka klien Azure Storage untuk memindahkan blob ke tingkat yang berbeda.
Mengubah tingkat blob
Saat mengubah tingkat blob, Anda memindahkan blob tersebut dan semua datanya ke tingkat target dengan memanggil operasi Set Blob Tier (baik secara langsung atau melalui kebijakan manajemen siklus hidup), atau dengan menggunakan perintah azcopy set-properties dengan AzCopy. Opsi ini biasanya merupakan pilihan terbaik saat Anda mengubah tingkat blob dari tingkat yang lebih panas ke yang lebih dingin.
Petunjuk
Anda dapat menggunakan tugas penyimpanan untuk mengubah tingkat akses blob dalam skala besar di beberapa akun penyimpanan berdasarkan serangkaian kondisi yang Anda tentukan. Tugas penyimpanan adalah sumber daya yang tersedia di Azure Storage Actions; kerangka kerja tanpa server yang dapat Anda gunakan untuk melakukan operasi data umum pada jutaan objek di beberapa akun penyimpanan. Untuk mempelajari selengkapnya, lihat Apa itu Tindakan Azure Storage?.
Untuk mengubah tingkat blob ke tingkat yang lebih dingin di portal Azure, ikuti langkah-langkah berikut:
Navigasikan ke blob yang ingin Anda ubah tingkatnya.
Pilih blob, lalu pilih tombol Ubah tingkat.
Dalam dialog Ubah tingkat, pilih tingkat target.
Pilih tombol Simpan.
Untuk mengubah tingkat blob ke tingkat yang lebih dingin dengan PowerShell, gunakan properti BlobClient blob untuk mengembalikan referensi .NET ke blob, lalu panggil metode SetAccessTier pada referensi tersebut. Ingatlah untuk mengganti placeholder dalam kurung siku dengan nilai Anda sendiri:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container>"
$blobName = "<blob>"
$tier = "<tier>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Change the blob's access tier.
$blob = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$blob.BlobClient.SetAccessTier($tier, $null, "Standard")
Untuk mengubah tingkat blob ke tingkat yang lebih dingin menggunakan Azure CLI, gunakan perintah az storage blob set-tier. Ingatlah untuk mengganti placeholder di dalam tanda kurung sudut dengan nilai Anda sendiri.
az storage blob set-tier \
--account-name <storage-account> \
--container-name <container> \
--name <blob> \
--tier <tier> \
--auth-mode login
Untuk mengubah tingkat blob ke tingkat yang lebih dingin, gunakan perintah azcopy set-properties dan tetapkan parameter -block-blob-tier
.
Catatan
Contoh ini menyertakan argumen jalur dengan tanda kutip tunggal (''). Gunakan tanda kutip tunggal di semua shell perintah kecuali Windows Command Shell (cmd.exe). Jika Anda menggunakan Windows Command Shell (cmd.exe), sertakan argumen jalur dengan tanda kutip ganda ("") dan bukan tanda kutip tunggal ('').
Contoh ini mengecualikan token SAS karena mengasumsikan bahwa Anda telah memberikan kredensial otorisasi dengan menggunakan ID Microsoft Entra. Lihat artikel Mulai Menggunakan AzCopy untuk mempelajari cara agar Anda dapat memberikan informasi masuk otorisasi ke layanan penyimpanan.
azcopy set-properties 'https://<storage-account-name>.blob.core.windows.net/<container-name>/<blob-name>' --block-blob-tier=<tier>
Untuk mengubah tingkatan akses untuk semua blob dalam direktori virtual, gunakan nama direktori virtual alih-alih nama blob, lalu tambahkan --recursive=true
ke perintah.
azcopy set-properties 'https://<storage-account-name>.blob.core.windows.net/<container-name>/myvirtualdirectory' --block-blob-tier=<tier> --recursive=true
Menyalin blob ke tingkat online yang berbeda
Panggil operasi Copy Blob untuk menyalin blob dari satu tingkat ke tingkat lainnya. Saat menyalin blob ke tingkat yang berbeda, pindahkan blob tersebut dan semua datanya ke tingkat target. Blob sumber tetap berada di tingkat asli, dan blob baru dibuat di tingkat target. Memanggil Copy Blob disarankan dalam sebagian besar skenario di mana Anda memindahkan blob ke tier yang lebih hangat, atau merehidrasi blob dari tier arsip.
Untuk menyalin blob dari dingin ke panas dengan PowerShell, panggil perintah Start-AzStorageBlobCopy dan tentukan tingkat target. Ingatlah untuk mengganti nol signifikan dalam tanda kurung sudut dengan nilai Anda sendiri:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$srcContainerName = "<source-container>"
$destContainerName = "<dest-container>"
$srcBlobName = "<source-blob>"
$destBlobName = "<dest-blob>"
# Get the storage account context
$ctx = (Get-AzStorageAccount `
-ResourceGroupName $rgName `
-Name $accountName).Context
# Copy the source blob to a new destination blob in hot tier.
Start-AzStorageBlobCopy -SrcContainer $srcContainerName `
-SrcBlob $srcBlobName `
-DestContainer $destContainerName `
-DestBlob $destBlobName `
-StandardBlobTier Hot `
-Context $ctx
Untuk menyalin blob ke tingkat yang lebih hangat dengan Azure CLI, panggil perintah az storage blob copy start dan tentukan tingkat target. Ingatlah untuk mengganti nol signifikan dalam tanda kurung sudut dengan nilai Anda sendiri:
az storage blob copy start \
--source-container <source-container> \
--source-blob <source-blob> \
--destination-container <dest-container> \
--destination-blob <dest-blob> \
--account-name <storage-account> \
--tier hot \
--auth-mode login
Untuk menyalin blob dari dingin ke panas dengan AzCopy, gunakan perintah azcopy copy dan atur --block-blob-tier
parameter ke hot
.
Catatan
Contoh ini menyertakan argumen jalur dengan tanda kutip tunggal (''). Gunakan tanda kutip tunggal di semua shell perintah kecuali Windows Command Shell (cmd.exe). Jika Anda menggunakan Windows Command Shell (cmd.exe), sertakan argumen jalur dengan tanda kutip ganda ("") dan bukan tanda kutip tunggal ('').
Contoh ini mengecualikan token SAS karena mengasumsikan bahwa Anda telah memberikan kredensial otorisasi dengan menggunakan ID Microsoft Entra. Lihat artikel Mulai Menggunakan AzCopy untuk mempelajari cara agar Anda dapat memberikan informasi masuk otorisasi ke layanan penyimpanan.
AzCopy tidak mendukung salinan dari blob sumber di tingkat arsip.
azcopy copy 'https://mystorageeaccount.blob.core.windows.net/mysourcecontainer/myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mydestinationcontainer/myTextFile.txt' --block-blob-tier=hot
Operasi salin sinkron sehingga ketika perintah kembali, semua file disalin.
Penjenjangan Massal
Untuk memindahkan blob ke tingkat lain dalam kontainer atau folder, hitung blob dan panggil operasi Atur Tingkat Blob pada masing-masing. Contoh berikut menunjukkan cara melakukan operasi ini:
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
$containerName = "<container>"
$folderName = "<folder>/"
$ctx = (Get-AzStorageAccount -ResourceGroupName $rgName -Name $accountName).Context
$blobCount = 0
$Token = $Null
$MaxReturn = 5000
do {
$Blobs = Get-AzStorageBlob -Context $ctx -Container $containerName -Prefix $folderName -MaxCount $MaxReturn -ContinuationToken $Token
if($Blobs -eq $Null) { break }
#Set-StrictMode will cause Get-AzureStorageBlob returns result in different data types when there is only one blob
if($Blobs.GetType().Name -eq "AzureStorageBlob")
{
$Token = $Null
}
else
{
$Token = $Blobs[$Blobs.Count - 1].ContinuationToken;
}
$Blobs | ForEach-Object {
if($_.BlobType -eq "BlockBlob") {
$_.BlobClient.SetAccessTier("Cold", $null)
}
}
}
While ($Token -ne $Null)
az storage blob list --account-name $accountName --account-key $key \
--container-name $containerName --prefix $folderName \
--query "[?properties.blobTier == 'Cool'].name" --output tsv \
| xargs -I {} -P 10 \
az storage blob set-tier --account-name $accountName --account-key $key \
--container-name $containerName --tier Cold --name "{}"
Saat memindahkan sejumlah besar blob ke tingkat lain, gunakan operasi batch untuk performa optimal. Operasi batch mengirimkan beberapa panggilan API ke layanan dengan satu permintaan. Sub-operasi yang didukung oleh operasi Batch Blob termasuk Hapus Blob dan Atur Tingkat Blob.
Untuk mengubah tingkat akses blob dengan operasi batch, gunakan salah satu pustaka klien Azure Storage. Contoh kode berikut memperlihatkan cara melakukan operasi batch dasar dengan pustaka klien .NET:
static async Task BulkArchiveContainerContents(string accountName, string containerName)
{
string containerUri = string.Format("https://{0}.blob.core.windows.net/{1}",
accountName,
containerName);
// Get container client, using Azure AD credentials.
BlobUriBuilder containerUriBuilder = new BlobUriBuilder(new Uri(containerUri));
BlobContainerClient blobContainerClient = new BlobContainerClient(containerUriBuilder.ToUri(),
new DefaultAzureCredential());
// Get URIs for blobs in this container and add to stack.
var uris = new Stack<Uri>();
await foreach (var item in blobContainerClient.GetBlobsAsync())
{
uris.Push(blobContainerClient.GetBlobClient(item.Name).Uri);
}
// Get the blob batch client.
BlobBatchClient blobBatchClient = blobContainerClient.GetBlobBatchClient();
try
{
// Perform the bulk operation to archive blobs.
await blobBatchClient.SetBlobsAccessTierAsync(blobUris: uris, accessTier: AccessTier.Archive);
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
}
}
Untuk contoh aplikasi mendalam yang memperlihatkan cara mengubah tingkat dengan operasi batch, lihat AzBulkSetBlobTier.
Langkah berikutnya