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ığını kullanarak bir blobu karşıya yükleme işlemi gösterilmektedir. Bir dosya yolundan, bir akıştan, bir arabellekten ve bir metin dizisinden blok blob'a veri yükleyebilirsiniz. Blobları dizin etiketleriyle de karşıya yükleyebilirsiniz.
Ö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 karşıya yükleme işlemi gerçekleştirebilmesi için izinleri olmalıdır. Daha fazla bilgi edinmek için aşağıdaki REST API işlemleri için yetkilendirme kılavuzuna bakın:
Blok bloba veri yükleme
Blok blobuna veri yüklemek için aşağıdaki yöntemlerden herhangi birini kullanabilirsiniz:
- yükleme (paralel olmayan yükleme yöntemi)
- uploadData
- uploadFile (yalnızca Node.js çalışma zamanında kullanılabilir)
- uploadStream (yalnızca Node.js çalışma zamanında kullanılabilir)
Bu yöntemlerin her biri BlockBlobClient nesnesi kullanılarak çağrılabilir.
Uyarı
Azure Depolama istemci kitaplıkları aynı bloba eş zamanlı yazmaları desteklemez. Uygulamanız aynı bloba birden çok işlem yazma gerektiriyorsa, öngörülebilir bir deneyim sağlamak için eşzamanlılık denetimine yönelik bir strateji uygulamanız gerekir. Eşzamanlılık stratejileri hakkında daha fazla bilgi edinmek için bkz. Blob Depolama'da eşzamanlılığı yönetme.
Bir dosya yolundan blok blobu yükleme
Aşağıdaki örnek, yerel bir dosya yolundan bir blok blob yükler.
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadBlobFromLocalPath(containerClient, blobName, localFilePath){
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.uploadFile(localFilePath);
}
Akıştan blok blobu yükleme
Aşağıdaki örnek, okunabilir bir veri akışı oluşturup, bu akışı yükleyerek bir blok blobu yükler.
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// readableStream: Readable stream, for example, a stream returned from fs.createReadStream()
async function uploadBlobFromReadStream(containerClient, blobName, readableStream) {
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload data to block blob using a readable stream
await blockBlobClient.uploadStream(readableStream);
}
Arabellekten blok blobu yükleme
Aşağıdaki örnek, bir Node.js tamponundan bir blok blob yükler.
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// buffer: blob contents as a buffer, for example, from fs.readFile()
async function uploadBlobFromBuffer(containerClient, blobName, buffer) {
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload buffer
await blockBlobClient.uploadData(buffer);
}
Dizeden blok blobu yükleme
Aşağıdaki örnek, bir dizeden bir blok blob yükler:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// fileContentsAsString: blob content
async function uploadBlobFromString(containerClient, blobName, fileContentsAsString){
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
await blockBlobClient.upload(fileContentsAsString, fileContentsAsString.length);
}
Yapılandırma seçenekleriyle bir blok blob yükleyin
Blob yüklerken istemci kitaplığının yapılandırma seçeneklerini tanımlayabilirsiniz. Bu seçenekler performansı geliştirmek, güvenilirliği artırmak ve maliyetleri iyileştirmek için ayarlanabilir. Bu bölümdeki kod örneklerinde BlockBlobParallelUploadOptions arabirimini kullanarak yapılandırma seçeneklerini ayarlama ve bu seçenekleri bir karşıya yükleme yöntemi çağrısına parametre olarak geçirme işlemleri gösterilmektedir.
Karşıya yüklemede veri aktarımı seçeneklerini belirtme
Veri aktarımı işlemlerinin performansını artırmak için BlockBlobParallelUploadOptions içinde özellikleri yapılandırabilirsiniz. Aşağıdaki tabloda, yapılandırabileceğiniz özellikler ve bir açıklama listelenir:
Mülk | Açıklama |
---|---|
blockSize |
Karşıya yükleme işleminin bir parçası olarak her istek için aktarılacak maksimum blok boyutu. |
concurrency |
Tek bir paralel aktarımın parçası olarak herhangi bir zamanda verilen en fazla paralel istek sayısı. |
maxSingleShotSize |
Verilerin boyutu bu değerden küçük veya bu değere eşitse, öbeklere ayırmak yerine tek bir yere yüklenir. Veriler tek seferde yüklenirse blok boyutu yoksayılır. Varsayılan değer 256 MiB'dir. |
Aşağıdaki kod örneğinde BlockBlobParallelUploadOptions değerlerinin nasıl ayarlanacağı ve karşıya yükleme yöntemi çağrısının parçası olarak seçeneklerin nasıl eklendiği gösterilmektedir. Örneklerde sağlanan değerlerin bir öneri olması amaçlanmamıştır. Bu değerleri düzgün ayarlamak için uygulamanızın belirli gereksinimlerini dikkate almanız gerekir.
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadWithTransferOptions(containerClient, blobName, localFilePath) {
// Specify data transfer options
const uploadOptions = {
blockSize: 4 * 1024 * 1024, // 4 MiB max block size
concurrency: 2, // maximum number of parallel transfer workers
maxSingleShotSize: 8 * 1024 * 1024, // 8 MiB initial transfer size
}
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload blob with transfer options
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Veri aktarımı seçeneklerini ayarlama hakkında daha fazla bilgi edinmek için, JavaScript ile yükleme ve indirme işlemlerinin performans ayarlaması bölümüne bakın.
Dizin etiketleriyle bir blok blob yüklemeniz.
Blob dizin etiketleri, anahtar-değer etiketi özniteliklerini kullanarak depolama hesabınızdaki verileri kategorilere ayırır. Bu etiketler otomatik olarak dizinlenir ve verileri kolayca bulmak için aranabilir çok boyutlu bir dizin olarak kullanıma sunulur.
Aşağıdaki örnek, BlockBlobParallelUploadOptions kullanılarak dizin etiketleri ayarlanmış bir blok blobu karşıya yükler.
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadWithIndexTags(containerClient, blobName, localFilePath) {
// Specify index tags for blob
const uploadOptions = {
tags: {
'Sealed': 'false',
'Content': 'image',
'Date': '2022-07-18',
}
}
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload blob with index tags
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Yükleme sırasında bir blob'un erişim katmanını ayarlayın
BlockBlobParallelUploadOptions arabirimini kullanarak karşıya yüklemede blob'un erişim katmanını ayarlayabilirsiniz. Aşağıdaki kod örneğinde blob karşıya yüklenirken erişim katmanının nasıl ayarlanacağı gösterilmektedir:
// containerClient: ContainerClient object
// blobName: string, includes file extension if provided
// localFilePath: fully qualified path and file name
async function uploadWithAccessTier(containerClient, blobName, localFilePath) {
// Specify access tier
const uploadOptions = {
// 'Hot', 'Cool', 'Cold', or 'Archive'
tier: 'Cool',
}
// Create blob client from container client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
// Upload blob to cool tier
await blockBlobClient.uploadFile(localFilePath, uploadOptions);
}
Erişim katmanının ayarlanmasına yalnızca blok blobları için izin verilir. Blok blobu için erişim katmanını Hot
, , Cool
Cold
veya Archive
olarak ayarlayabilirsiniz. Erişim katmanını olarak ayarlamak için Cold
en düşük istemci kitaplığı sürümü olan 12.13.0 kullanmanız gerekir.
Erişim katmanları hakkında daha fazla bilgi edinmek için bkz . Erişim katmanlarına genel bakış.
Kaynaklar
JavaScript için Azure Blob Depolama istemci kitaplığını kullanarak blobları karşıya yükleme 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. Blobları karşıya yüklemek için istemci kitaplığı yöntemleri aşağıdaki REST API işlemlerini kullanır:
- Blob Yerleştirme (REST API)
- Put Block (REST API)
Kod örnekleri
Bu makaledeki (GitHub) kod örneklerini görüntüleyin:
- JavaScript veya TypeScript için yerel dosya yolundan karşıya yükleme
- JavaScript veya TypeScript için arabellekten yükleme
- JavaScript veya TypeScript için akıştan karşıya yükleme
- JavaScript için veya TypeScript için dizeden karşıya yükleme
- JavaScript veya TypeScript için aktarım seçenekleriyle karşıya yükleme
- JavaScript veya TypeScript için dizin etiketleriyle karşıya yükleme
- JavaScript veya TypeScript için erişim katmanıyla karşıya yükleme
İstemci kitaplığı kaynakları
Ayrıca bkz.
- Blob dizini etiketleriyle Azure Blob verilerini yönetme ve bulma
- Azure Blob Depolama verileri yönetmek ve bulmak için blob dizini etiketlerini kullanma
İlgili içerik
- Bu makale, JavaScript/TypeScript için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Daha fazla bilgi için JavaScript/TypeScript uygulamanızı oluşturun kısmındaki geliştirici kılavuzu makalelerinin tam listesine göz atın.