Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, JavaScript için Azure Depolama istemci kitaplığı ile blok blobları için blob erişim katmanınıayarlama veya değiştirme işlemleri gösterilmektedir.
Önkoşullar
- Bu makaledeki örneklerde JavaScript için Azure Blob Depolama istemci kitaplığıyla çalışmak üzere ayarlanmış bir projeniz olduğu varsayılır. Paket yükleme, modülleri içeri aktarma ve veri kaynaklarıyla çalışmak üzere yetkili bir istemci nesnesi oluşturma gibi projenizi ayarlama hakkında bilgi edinmek için bkz. Azure Blob Depolama ve JavaScript'i kullanmaya başlama.
- Yetkilendirme mekanizmasının blob erişim katmanını ayarlama izinleri olmalıdır. Daha fazla bilgi edinmek için aşağıdaki REST API işlemi için yetkilendirme kılavuzuna bakın:
Blok blobu erişim katmanları hakkında
Depolama gereksinimlerinin maliyetlerini yönetmek için verilerinizi ne sıklıkta erişildiğinden ve ne kadar süreyle saklanması gerektiğinden yola çıkarak düzenlemek yararlı olabilir. Azure depolama, blob verilerinizi nasıl kullanıldığına göre en uygun maliyetli şekilde depolayabileceğiniz farklı erişim katmanları sunar.
Blob verileri için erişim katmanları
Azure Depolama erişim katmanları şunlardır:
- Sık erişim katmanı - Sık erişilen veya değiştirilen verileri depolamak için iyileştirilmiş bir çevrimiçi katman. Sık erişim katmanı en yüksek depolama maliyetlerine, ancak en düşük erişim maliyetlerine sahiptir.
- Soğuk katman - Nadiren erişilen veya değiştirilen verileri depolamak için optimize edilmiş çevrimiçi katman. Seyrek erişim katmanındaki veriler en az 30 gün boyunca depolanmalıdır. Soğuk katman, sıcak katmana kıyasla daha düşük depolama maliyetlerine ve daha yüksek erişim maliyetlerine sahiptir.
- Soğuk katman - Seyrek erişilen veya değiştirilen verileri depolamak için iyileştirilmiş çevrimiçi katman. Soğuk katmandaki veriler en az 90 gün saklanmalıdır. Soğuk katman, soğuk depolama katmanına kıyasla depolama açısından daha düşük, erişim açısından daha yüksek maliyetlidir.
- Arşiv katmanı - Seyrek erişilen ve esnek gecikme süresi gereksinimlerine sahip verileri saat sırasına göre depolamak için iyileştirilmiş çevrimdışı katman. Arşiv katmanındaki veriler en az 180 gün boyunca depolanmalıdır.
Erişim katmanları hakkında daha fazla bilgi edinmek için bkz . Blob verileri için erişim katmanları.
Blob Arşiv erişim katmanındayken çevrimdışı olduğu kabul edilir ve okunamaz veya değiştirilemez. Arşivlenmiş bir blobdaki verileri okumak veya değiştirmek için önce blobu çevrimiçi bir katmanda yeniden doldurmanız gerekir. Bir blobu Arşiv katmanından çevrimiçi bir katmana yeniden etkinleştirme hakkında daha fazla bilgi edinmek için Arşiv katmanından blob yeniden etkinleştirme sayfasına bakın.
Kısıtlamalar
Erişim katmanının ayarlanmasına yalnızca blok bloblarında izin verilir. Blok blobu erişim katmanını ayarlama kısıtlamaları hakkında daha fazla bilgi edinmek için bkz . Blob Katmanını Ayarlama (REST API).
Not
Erişim katmanını JavaScript'i kullanacak şekilde ayarlamak için Cold en düşük istemci kitaplığı sürümü olan 12.13.0 kullanmanız gerekir.
Yüklerken bir blob'un erişim katmanını ayarlayın
Blobu belirli bir erişim katmanına yüklemek için BlockBlobUploadOptions kullanın. Özellik tier seçenekleri şunlardır: Hot, Cool, Coldveya Archive.
async function uploadWithAccessTier(containerClient, blobName) {
const fileContentsAsString = `Hello from a string`
// upload blob to `Cool` access tier
const uploadOptions = {
// 'Hot', 'Cool', 'Cold', or 'Archive'
tier: 'Cool',
}
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload string
await blockBlobClient.upload(fileContentsAsString, fileContentsAsString.length, uploadOptions);
// Return client to continue with other operations
return blockBlobClient;
}
Yüklemeden sonra blob'un erişim katmanını değiştir
Depolama alanına yüklendikten sonra blobun erişim katmanını değiştirmek için setAccessTier'ı kullanın. Katmanla birlikte BlobSetTierOptions özelliği yeniden nemlendirme önceliğini ayarlayarak blok blobunu arşivlenmiş durumdan çıkarabilirsiniz. Olası değerler: High veya Standard.
async function main(blockBlobClient) {
// Get current access tier
const { accessTier } = await blockBlobClient.getProperties();
console.log(`Current access tier: ${accessTier}`);
// 'Hot', 'Cool', or 'Archive'
const newAccessTier = 'Cool';
// Rehydrate priority: 'High' or 'Standard'
const rehydratePriority = 'High';
const result = await blockBlobClient.setAccessTier(
newAccessTier,
{ rehydratePriority }
);
if (result?.errorCode == undefined) {
console.log(`Change to access was successful`);
} else {
console.log(result);
}
}
Blobu farklı bir erişim katmanına kopyalama
BlobClient kullanın.blobu kopyalamak için beginCopyFromURL yöntemi. Kopyalama işlemi sırasında erişim katmanını değiştirmek için BlobBeginCopyFromURLOptionstierve kaynak blobdan farklı bir erişim katmanı belirtin.
async function copyBlobWithDifferentAccessTier(containerClient) {
// create blob clients
const sourceBlobClient = containerClient.getBlobClient(originalBlob);
const destinationBlobClient = containerClient.getBlobClient(copyBlob);
// start copy, access tiers include `Hot`, `Cool`, `Cold`, `Archive`
const copyPoller = await destinationBlobClient.beginCopyFromURL(sourceBlobClient.url, { tier: 'Hot' });
console.log('start copy from original to copy');
// wait until done
await copyPoller.pollUntilDone();
console.log('copy finished')
}
Birçok blob için erişim katmanını değiştirmek amacıyla toplu işlem kullanın.
Toplu işlem, bloblarda silme veya erişim katmanı ayarlama gibi bir işlem kümesini temsil eder. Her işlemi başarıyla gerçekleştirmek için doğru kimlik bilgilerini geçirmeniz gerekir. Bu örnekte, aynı kapsayıcıdaki bir blob kümesi için aynı kimlik bilgisi kullanılır.
Oluşturun BlobBatchClient. createBatch() yöntemiyle bir toplu iş oluşturmak için istemciyi kullanın. Toplu işlem hazır olduğunda toplu işlemi gönderin. Döndürülen yapıyı kullanarak her blob işleminin başarılı olduğunu doğrulayın.
async function main(containerClient) {
// Prep array
const blockBlobCount = 3;
const blockBlobClients = new Array(blockBlobCount);
// Create container and blobs in `Hot` tier
await prepContainer(containerClient, blockBlobCount, blockBlobClients);
// Blob batch client and batch
const containerScopedBatchClient = containerClient.getBlobBatchClient();
const blobBatch = containerScopedBatchClient.createBatch();
// Assemble batch to set tier to `Cool` tier
for (let i = 0; i < blockBlobCount; i++) {
await blobBatch.setBlobAccessTier(blockBlobClients[i].url, sharedKeyCredential, "Cool", {});
}
// Submit batch request and verify response
const resp = await containerScopedBatchClient.submitBatch(blobBatch, {});
console.log(`Requested ${blockBlobCount}, batched ${resp.subResponses.length}, success ${resp.subResponsesSucceededCount}, failure ${resp.subResponsesFailedCount}`);
// Examine each batch item
for (let i = 0; i < blockBlobCount; i++) {
// Check blob tier set properly
const resp2 = await blockBlobClients[i].getProperties();
console.log(`[${i}] access tier ${resp2.accessTier}, status ${resp.subResponses[i].status}, message ${resp.subResponses[i].statusMessage}`)
}
}
Kod örnekleri
- JavaScript veya TypeScript için karşıya yükleme sırasında blob erişim katmanını ayarlama
- JavaScript veya TypeScript için karşıya yüklendikten sonra blob erişim katmanını değiştirme
- JavaScript veya TypeScript için blobu farklı erişim katmanına kopyalama
- Birçok blob için erişim katmanını değiştirmek üzere JavaScript veya TypeScript için toplu iş kullanın.