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

Ayarlama

Bu bölüm, JavaScript için Azure Blob depolama istemci kitaplığı v12 ile çalışmak için proje hazırlamada size yol göstermektedir.

Proje oluşturma

blob-quickstart-v12 adlı bir JavaScript uygulaması oluşturun.

  1. Konsol penceresinde (cmd, PowerShell veya Bash gibi) proje için yeni bir dizin oluşturun.

    mkdir blob-quickstart-v12
    
  2. Yeni oluşturulan blob-quickstart-v12 dizinine geçiş.

    cd blob-quickstart-v12
    
  3. package.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üklür.

npm install

Uygulama çerçevesini ayarlama

Proje dizininden:

  1. Kod düzenleyicide başka bir yeni metin dosyası açın

  2. requireAzure'a ve Node.js modüllerine çağrı ekleme

  3. Temel ö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));
    
  4. 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:

  1. Azure Portal’ında oturum açın.

  2. Depolama hesabınızı bulun.

  3. 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 anahtarı ayarlarının Azure portal nerede olduğunu gösteren ekran görüntüsü

  4. Erişim tuşları bölmesinde, anahtarları göster' i seçin.

  5. 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.

    Azure portalından bağlantı dizesinin kopyalanmasını gösteren ekran görüntüsü

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 miktarda yapılandırılmamış veri depolamak 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.

Blob depolama mimarisi diyagramı

Bu kaynaklarla etkileşim kurmak için aşağıdaki JavaScript sınıflarını kullanın:

  • BlobServiceClient: BlobServiceClient sınıfı, Azure kaynak ve blob Depolama işlemeye olanak sağlar.
  • ContainerClient: ContainerClient sınıfı, Azure kapsayıcılarını ve bloblarını Depolama olanak sağlar.
  • BlobClient: BlobClient sı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

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, depolama hesabınıza kapsayıcıyı 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 kapsayıcıya blobları depolama

Aşağıdaki kod parçacığı:

  1. Bloba yüklemek için bir metin dizesi oluşturur.
  2. Kapsayıcı oluşturma bölümünden ContainerClient üzerinde getBlockBlobClient yöntemini çağırarak bir BlockBlobClient nesnesine başvuru alır.
  3. 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.

İş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.

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: