Hızlı Başlangıç: Node.js'de JavaScript v12 SDK'sı ile blobları yönetme
Bu hızlı başlangıçta blobları yönetmek için blobları Node.js. Bloblar; görüntüler, belgeler, akış medyası ve arşiv verileri gibi büyük miktarlarda metin veya ikili veri tutabilirsiniz. Blobları karşıya yükecek, indirecek ve listeledikten sonra kapsayıcıları oluştur ve silebilirsiniz.
Ek kaynaklar:
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir hesap oluşturun.
- Azure Depolama hesabı. Depolama hesabı oluşturun.
- Node.js.
Ayarlama
Bu bölümde, JavaScript için Azure Blob depolama istemci kitaplığı v12 ile çalışmak için bir proje hazırlamada size yol göstermektedir.
Proje oluşturma
blob-quickstart-v12 adlı bir JavaScript uygulaması oluşturun.
Konsol penceresinde (cmd, PowerShell veya Bash gibi) proje için yeni bir dizin oluşturun.
mkdir blob-quickstart-v12Yeni oluşturulan blob-quickstart-v12 dizinine geçiş.
cd blob-quickstart-v12package.json adlı yeni bir metin dosyası oluşturun. Bu dosya, Node.js tanımlar. Bu dosyayı blob-quickstart-v12 dizinine kaydedin. Dosyanın içeriği şu şekildedir:
{ "name": "blob-quickstart-v12", "version": "1.0.0", "description": "Use the @azure/storage-blob SDK version 12 to interact with Azure Blob storage", "main": "blob-quickstart-v12.js", "scripts": { "start": "node blob-quickstart-v12.js" }, "author": "Your Name", "license": "MIT", "dependencies": { "@azure/storage-blob": "^12.0.0", "@types/dotenv": "^4.0.3", "dotenv": "^6.0.0" } }50.000.0000000000000000000000000000000000000000000
author
Paketi yükleme
blob-quickstart-v12 dizinindeyken komutunu kullanarak JavaScript paketi için Azure Blob depolama istemci kitaplığını npm install yükleyin. Bu komut package.json dosyasını okur ve JavaScript paketi için Azure Blob depolama istemci kitaplığı v12'yi ve bağlı olduğu tüm kitaplıkları yüklenir.
npm install
Uygulama çerçevesini ayarlama
Proje dizininden:
Kod düzenleyicide başka bir yeni metin dosyası açın
requireAzure ve azure modüllerini yüklemek Node.js eklemeTemel özel durum işleme dahil olmak üzere program için yapı oluşturma
Kod şu şekildedir:
const { BlobServiceClient } = require('@azure/storage-blob'); const { v1: uuidv1} = require('uuid'); async function main() { console.log('Azure Blob storage v12 - JavaScript quickstart sample'); // Quick start code goes here } main().then(() => console.log('Done')).catch((ex) => console.log(ex.message));Yeni dosyayı blob-quickstart-v12 dizinine blob-quickstart-v12.jsolarak kaydedin.
Azure portalından kimlik bilgilerinizi kopyalama
örnek uygulama Azure Depolama istek yaptığında yetkilendirilmiş olması gerekir. Bir isteği yetkilendirmek için, depolama hesabı kimlik bilgilerinizi uygulamaya bağlantı dizesi olarak ekleyin. Depolama hesabı kimlik bilgilerinizi görüntülemek için aşağıdaki adımları izleyin:
Azure Portal’ında oturum açın.
Depolama hesabınızı bulun.
Depolama hesabı menü bölmesinde, güvenlik + ağ altında, erişim anahtarları' nı seçin. Burada, her anahtar için hesap erişim anahtarlarını ve tüm bağlantı dizesini görüntüleyebilirsiniz.

Erişim tuşları bölmesinde, anahtarları göster' i seçin.
KEY1 bölümünde bağlantı dizesi değerini bulun. Bağlantı dizesini kopyalamak için Panoya Kopyala simgesini seçin. Bir sonraki bölümde bağlantı dizesi değerini bir ortam değişkenine eklersiniz.

Depolama bağlantı dizelerinizi yapılandırma
Bağlantı dizesini kopyaladıktan sonra, uygulamayı çalıştıran yerel makinede yeni bir ortam değişkenine yazın. Ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminizin yönergelerini izleyin. <yourconnectionstring>Gerçek bağlantı dizeniz ile değiştirin.
Windows
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
ortam değişkenini Windows ekledikten sonra, komut penceresinin yeni bir örneğini başlatmanız gerekir.
Linux
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
macOS
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
Programları yeniden Başlat
Ortam değişkenini ekledikten sonra, ortam değişkenini okumak için gereken tüm çalışan programları yeniden başlatın. Örneğin, devam etmeden önce geliştirme ortamınızı veya düzenleyiciyi yeniden başlatın.
Nesne modeli
Azure Blob depolama, çok büyük miktarlarda yapılandırılmamış verilerin depolanması için en iyi duruma getirilmiştir. Yapılandırılmamış veriler, metin veya ikili veriler gibi belirli bir veri modeline veya tanıma bağlı olmayan verilerdir. Blob depolama üç tür kaynak sunar:
- Depolama hesabı
- Depolama hesabı içinde bir kapsayıcı
- Kapsayıcıda bir blob
Aşağıdaki diyagramda bu kaynaklar arasındaki ilişki gösterilmektedir.

Bu kaynaklarla etkileşim kurmak için aşağıdaki JavaScript sınıflarını kullanın:
- BlobServiceClient:
BlobServiceClientsınıfı, Azure kaynak ve blob Depolama işlemeye olanak sağlar. - ContainerClient:
ContainerClientsınıfı, Azure kapsayıcılarını ve bloblarını Depolama olanak sağlar. - BlobClient:
BlobClientsınıfı, Azure bloblarını ve blobları Depolama sağlar.
Kod örnekleri
Bu örnek kod parçacıkları, JavaScript için Azure Blob depolama istemci kitaplığıyla aşağıdaki işlemleri nasıl gerçekleştirebilirsiniz:
- Bağlantı dizesini alma
- Kapsayıcı oluşturma
- Upload blobları kapsayıcıya depolama
- Kapsayıcıdaki blobları listeleme
- Blob’ları indirme
- Kapsayıcı silme
Bağlantı dizesini alma
Aşağıdaki kod, Depolama bağlantı dizenizi yapılandırma bölümünde oluşturulan ortam değişkenini kullanarak depolama hesabının bağlantı dizesini alır.
İşlevin içine şu kodu main ekleyin:
// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING. If the
// environment variable is created after the application is launched in a
// console or with Visual Studio, the shell or application needs to be closed
// and reloaded to take the environment variable into account.
const AZURE_STORAGE_CONNECTION_STRING = process.env.AZURE_STORAGE_CONNECTION_STRING;
Kapsayıcı oluşturma
Yeni kapsayıcı için bir ad seçin. Aşağıdaki kod, benzersiz olduğundan emin olmak için kapsayıcı adına bir UUID değeri ekler.
Önemli
Kapsayıcı adlarının küçük harfle yazılması gerekir. Kapsayıcıları ve blobları adlandırma hakkında daha fazla bilgi için bkz. Kapsayıcıları, Blobları ve Meta Verileri Adlandırma ve Bunlara Başvurma.
fromConnectionString yöntemini çağırarak BlobServiceClient sınıfının bir örneğini oluşturun. Ardından kapsayıcı başvurusu almak için getContainerClient yöntemini çağırabilirsiniz. Son olarak, kapsayıcıyı depolama hesabında gerçekten oluşturmak için create çağrısı oluşturun.
İşlevin sonuna şu kodu main ekleyin:
// Create the BlobServiceClient object which will be used to create a container client
const blobServiceClient = BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING);
// Create a unique name for the container
const containerName = 'quickstart' + uuidv1();
console.log('\nCreating container...');
console.log('\t', containerName);
// Get a reference to a container
const containerClient = blobServiceClient.getContainerClient(containerName);
// Create the container
const createContainerResponse = await containerClient.create();
console.log("Container was created successfully. requestId: ", createContainerResponse.requestId);
Upload blobları kapsayıcıya depolama
Aşağıdaki kod parçacığı:
- Bloba yüklemek için bir metin dizesi oluşturur.
- Kapsayıcı oluşturma bölümünden ContainerClient üzerinde getBlockBlobClient yöntemini çağırarak bir BlockBlobClient nesnesine başvuru alır.
- Upload yöntemini çağırarak metin dizesi verilerini bloba yükler.
İşlevin sonuna şu kodu main ekleyin:
// Create a unique name for the blob
const blobName = 'quickstart' + uuidv1() + '.txt';
// Get a block blob client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
console.log('\nUploading to Azure storage as blob:\n\t', blobName);
// Upload data to the blob
const data = 'Hello, World!';
const uploadBlobResponse = await blockBlobClient.upload(data, data.length);
console.log("Blob was uploaded successfully. requestId: ", uploadBlobResponse.requestId);
Kapsayıcıdaki blobları listeleme
listBlobsFlat yöntemini çağırarak kapsayıcıda blobları listele. Bu durumda, kapsayıcıya yalnızca bir blob eklenmiştir, bu nedenle listeleme işlemi yalnızca bir blob döndürür.
İşlevin sonuna şu kodu main ekleyin:
console.log('\nListing blobs...');
// List the blob(s) in the container.
for await (const blob of containerClient.listBlobsFlat()) {
console.log('\t', blob.name);
}
Blob’ları indirme
download yöntemini çağırarak önceden oluşturulmuş blobu indirin. Örnek kod, bir dizede okunabilir bir akışı okumak için streamToString Node.js adlı bir yardımcı işlevi içerir.
İşlevin sonuna şu kodu main ekleyin:
// Get blob content from position 0 to the end
// In Node.js, get downloaded data by accessing downloadBlockBlobResponse.readableStreamBody
// In browsers, get downloaded data by accessing downloadBlockBlobResponse.blobBody
const downloadBlockBlobResponse = await blockBlobClient.download(0);
console.log('\nDownloaded blob content...');
console.log('\t', await streamToString(downloadBlockBlobResponse.readableStreamBody));
bu yardımcı işlevi işlevden sonra main ekleyin:
// A helper function used to read a Node.js readable stream into a string
async function streamToString(readableStream) {
return new Promise((resolve, reject) => {
const chunks = [];
readableStream.on("data", (data) => {
chunks.push(data.toString());
});
readableStream.on("end", () => {
resolve(chunks.join(""));
});
readableStream.on("error", reject);
});
}
Kapsayıcı silme
Aşağıdaki kod, delete yöntemini kullanarak kapsayıcının tamamını kaldırarak uygulamanın oluşturduğu kaynakları temizler. Like you can also delete the local files, if you can also delete the local files, if you can also delete the local files, if you can also delete the local files, if
İşlevin sonuna şu kodu main ekleyin:
console.log('\nDeleting container...');
// Delete container
const deleteContainerResponse = await containerClient.delete();
console.log("Container was deleted successfully. requestId: ", deleteContainerResponse.requestId);
Kodu çalıştırma
Bu uygulama bir metin dizesi oluşturur ve blob depolamaya yükler. Örnek daha sonra kapsayıcıda blobları listeler, blobu indirir ve indirilen verileri görüntüler.
Bir konsol isteminde,blob-quickstart-v12.jsdosyasını içeren dizine gidin ve uygulamayı çalıştırmak node için aşağıdaki komutu yürütün.
node blob-quickstart-v12.js
Uygulamanın çıktısı aşağıdaki örnektekine benzer:
Azure Blob storage v12 - JavaScript quickstart sample
Creating container...
quickstart4a0780c0-fb72-11e9-b7b9-b387d3c488da
Uploading to Azure Storage as blob:
quickstart4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt
Listing blobs...
quickstart4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt
Downloaded blob content...
Hello, World!
Deleting container...
Done
Hata ayıklayıcıda kodda adım adım inin ve işlem Azure portal hata ayıklayıcınızı kontrol edin. Kapsayıcının oluşturularak kontrol edin. Blobu kapsayıcının içinde açabilir ve içeriği görüntüabilirsiniz.
Sonraki adımlar
Bu hızlı başlangıçta JavaScript kullanarak blobları karşıya yükleme, indirme ve listeye ekleme hakkında bilgi edindiniz.
Öğreticiler, örnekler, hızlı başlangıçlar ve diğer belgeler için şu ziyaretleri ziyaret edin:
- Azure Blob depolama kullanan bir web uygulaması dağıtma hakkında bilgi edinmek için bkz. Öğretici: Azure Upload ile bulutta görüntü verilerini Depolama
- Blob depolama örnek uygulamalarını görmek için Azure Blob depolama istemci kitaplığı v12 JavaScript örnekleri'ne gidin.
- Daha fazla bilgi için bkz. JavaScript için Azure Blob depolama istemci kitaplığı.