TypeScript ile blob özelliklerini ve meta verilerini yönetme
Bloblar, içerdikleri verilere ek olarak sistem özelliklerini ve kullanıcı tanımlı meta verileri destekler. Bu makalede, JavaScript için Azure Depolama istemci kitaplığıyla sistem özelliklerinin ve kullanıcı tanımlı meta verilerin nasıl yönetileceğini 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ışacak yetkili bir istemci nesnesi oluşturma gibi projenizi ayarlama hakkında bilgi edinmek için bkz. Azure Blob Depolama ve TypeScript'i kullanmaya başlama.
- Yetkilendirme mekanizmasının blob özellikleri veya meta verilerle çalışma izinleri olmalıdır. Daha fazla bilgi edinmek için aşağıdaki REST API işlemleri için yetkilendirme kılavuzuna bakın:
Özellikler ve meta veriler hakkında
Sistem özellikleri: Her Blob depolama kaynağında sistem özellikleri vardır. Bazıları okunabilir veya ayarlanabilirken, bazıları salt okunurdur. Bazı sistem özellikleri, kapakların altında belirli standart HTTP üst bilgilerine karşılık gelir. JavaScript için Azure Depolama istemci kitaplığı bu özellikleri sizin için korur.
Kullanıcı tanımlı meta veriler: Kullanıcı tanımlı meta veriler, Blob depolama kaynağı için belirttiğiniz bir veya daha fazla ad-değer çiftini içerir. Kaynakla birlikte ek değerleri depolamak için meta verileri kullanabilirsiniz. Meta veri değerleri yalnızca sizin amaçlarınıza yöneliktir ve kaynağın davranışını etkilemez.
Meta veri adı/değer çiftleri geçerli HTTP üst bilgileridir ve HTTP üst bilgilerini yöneten tüm kısıtlamalara uymalıdır. Meta veri adlandırma gereksinimleri hakkında daha fazla bilgi için bkz . Meta veri adları.
Not
Blob dizin etiketleri, Azure Blob depolama kaynağıyla birlikte rastgele kullanıcı tanımlı anahtar/değer özniteliklerini depolama olanağı da sağlar. Meta veriye benzer olsa da, yalnızca blob dizin etiketleri otomatik olarak dizinlenir ve yerel blob hizmeti tarafından aranabilir hale gelir. Azure Search gibi ayrı bir hizmet kullanmadığınız sürece meta veriler dizine alınamaz ve sorgulanamaz.
Bu özellik hakkında daha fazla bilgi edinmek için bkz . Blob dizini (önizleme) ile Azure Blob depolamada verileri yönetme ve bulma.
Blob http üst bilgilerini ayarlama
Aşağıdaki kod örneği bir blob üzerindeki blob HTTP sistem özelliklerini ayarlar.
Blob için HTTP özelliklerini ayarlamak için bir BlobClient oluşturun ve BlobClient.setHTTPHeaders'ı çağırın. Hangi HTTP özelliklerini ayarlamak istediğinizi öğrenmek için BlobHTTPHeaders özelliklerini gözden geçirin. Açıkça ayarlanmayan tüm HTTP özellikleri temizlenir.
async function setHTTPHeaders(blobClient: BlobClient, headers): Promise<void> {
/*
headers= {
blobContentType: 'text/plain',
blobContentLanguage: 'en-us',
blobContentEncoding: 'utf-8',
// all other http properties are cleared
}
*/
const headerResults = await blobClient.setHTTPHeaders(headers);
if (!headerResults.errorCode) {
console.log(`headers set successfully ${headerResults.date}`);
}
}
Meta verileri ayarlama
Meta verileri bir blob veya kapsayıcı kaynağında bir veya daha fazla ad-değer çifti olarak belirtebilirsiniz. Meta verileri ayarlamak için bir BlobClient oluşturun ve ardından ile ad-değer çiftleri içeren bir JSON nesnesi gönderin
- BlobClient.setMetadata bir BlobGetPropertiesResponse nesnesi döndürür.
Aşağıdaki kod örneği bir blob üzerindeki meta verileri ayarlar.
async function setBlobMetadata(
blobClient: BlobClient,
metadata: Metadata
): Promise<void> {
/*
metadata= {
reviewedBy: 'Bob',
releasedBy: 'Jill',
}
*/
const metadataResults = await blobClient.setMetadata(metadata);
if (!metadataResults.errorCode) {
console.log(`metadata set successfully ${metadataResults.date}`);
}
}
Meta verileri okumak için, özellikle özelliğine başvuran blob özelliklerini (aşağıda gösterilmiştir) metadata
alın.
Blob özelliklerini alma
Aşağıdaki kod örneği, HTTP üst bilgileri ve meta veriler de dahil olmak üzere blob'un sistem özelliklerini alır ve bu değerleri görüntüler.
async function getProperties(blobClient: BlobClient): Promise<void> {
const propertiesResponse: BlobGetPropertiesResponse =
await blobClient.getProperties();
if (!propertiesResponse.errorCode) {
console.log(blobClient.name + ' properties: ');
for (const property in propertiesResponse) {
switch (property) {
// nested properties are stringified and returned as strings
case 'metadata':
case 'objectReplicationRules':
console.log(
` ${property}: ${JSON.stringify(propertiesResponse[property])}`
);
break;
default:
console.log(` ${property}: ${propertiesResponse[property]}`);
break;
}
}
}
}
Blob özellikleri şunları içerebilir:
lastModified: Mon Mar 20 2023 11:04:17 GMT-0700 (Pacific Daylight Time)
createdOn: Mon Mar 20 2023 11:04:17 GMT-0700 (Pacific Daylight Time)
metadata: {"releasedby":"Jill","reviewedby":"Bob"}
objectReplicationPolicyId: undefined
objectReplicationRules: {}
blobType: BlockBlob
copyCompletedOn: undefined
copyStatusDescription: undefined
copyId: undefined
copyProgress: undefined
copySource: undefined
copyStatus: undefined
isIncrementalCopy: undefined
destinationSnapshot: undefined
leaseDuration: undefined
leaseState: available
leaseStatus: unlocked
contentLength: 19
contentType: text/plain
etag: "0x8DB296D85EED062"
contentMD5: undefined
isServerEncrypted: true
encryptionKeySha256: undefined
encryptionScope: undefined
accessTier: Hot
accessTierInferred: true
archiveStatus: undefined
accessTierChangedOn: undefined
versionId: undefined
isCurrentVersion: undefined
tagCount: undefined
expiresOn: undefined
isSealed: undefined
rehydratePriority: undefined
lastAccessed: undefined
immutabilityPolicyExpiresOn: undefined
immutabilityPolicyMode: undefined
legalHold: undefined
errorCode: undefined
body: true
_response: [object Object]
objectReplicationDestinationPolicyId: undefined
objectReplicationSourceProperties:
Kaynaklar
JavaScript için Azure Blob Depolama istemci kitaplığını kullanarak sistem özelliklerini ve kullanıcı tanımlı meta verileri yönetme hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.
REST API işlemleri
JavaScript için Azure SDK, Azure REST API'sinin üzerinde derlenmiş kitaplıklar içerir ve tanıdık JavaScript paradigmalarıyla REST API işlemleriyle etkileşim kurmanızı sağlar. Sistem özelliklerini ve kullanıcı tanımlı meta verileri yönetmek için istemci kitaplığı yöntemleri aşağıdaki REST API işlemlerini kullanır:
- Blob Özelliklerini Ayarlama (REST API)
- Blob Özelliklerini Alma (REST API)
- Blob Meta Verilerini Ayarlama (REST API)
- Blob Meta Verilerini Alma (REST API)
Kod örnekleri
İstemci kitaplığı kaynakları
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin