JavaScript veya TypeScript ile blob indirin

Bu makalede JavaScript için Azure Depolama istemci kitaplığını kullanarak blob indirme işlemi gösterilmektedir. Blob verilerini yerel dosya yolu, akış veya metin dizesi gibi çeşitli hedeflere indirebilirsiniz.

Prerequisites

  • 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 indirme işlemi gerçekleştirme izinleri olmalıdır. Daha fazla bilgi edinmek için aşağıdaki REST API işlemi için yetkilendirme kılavuzuna bakın:

Bir blob indir

Blobu indirmek için aşağıdaki yöntemlerden herhangi birini kullanabilirsiniz:

Dosya yoluna indir

Aşağıdaki örnek BlobClient.downloadToFile yöntemiyle bir dosya yolu kullanarak blobu indirir. Bu yöntem yalnızca Node.js çalışma zamanında kullanılabilir:

async function downloadBlobToFile(containerClient, blobName, localFilePath) {

    const blobClient = containerClient.getBlobClient(blobName);
    
    await blobClient.downloadToFile(localFilePath);
}

Akış olarak indirme

Aşağıdaki örnek, bir Node.js yazılabilir akış nesnesi oluşturarak ve ardından BlobClient.download yöntemiyle bu akışa yönlendirerek blobu indirir.

async function downloadBlobAsStream(containerClient, blobName, writableStream) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    downloadResponse.readableStreamBody.pipe(writableStream);
}

Bir dizeye indirme

Aşağıdaki Node.js örnek BlobClient.download yöntemiyle bir dizeye blob indirir. Node.js içinde blob verisi, readableStreamBody içinde döndürülür.

async function downloadBlobToString(containerClient, blobName) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    const downloaded = await streamToBuffer(downloadResponse.readableStreamBody);
    console.log('Downloaded blob content:', downloaded.toString());
}

function streamToBuffer(readableStream) {
    return new Promise((resolve, reject) => {
        const chunks = [];
        readableStream.on('data', (data) => {
            chunks.push(data instanceof Buffer ? data : Buffer.from(data));
        });
        readableStream.on('end', () => {
            resolve(Buffer.concat(chunks));
        });
        readableStream.on('error', reject);
    });
}

Tarayıcıda JavaScript ile çalışıyorsanız blob verileri promise blobBody içinde döndürülüyor. Daha fazla bilgi edinmek için BlobClient.download adresinde tarayıcılara yönelik örnek kullanıma bakın.

İndirmede veri aktarımı doğrulaması

CRC64-NVME ile aktarım doğrulaması, Azure Blob Depolama için istemci düzeyinde veri bütünlüğü sağlayarak uygulamanız tarafından gönderilen verilerin Azure depolanan ve okunan verilerle aynı olduğunu doğrulamanıza olanak sağlar. Etkinleştirildiğinde, Blob SDK karşıya yükleme ve indirme işlemleri sırasında CRC64-NVME sağlama toplamlarını hesaplar ve doğrularken, hizmet aldığı ve döndürdüğü veriler için CRC64-NVME sağlama toplamlarını bağımsız olarak hesaplar ve doğrular. Doğrulama her istekte ve tam veri akışında gerçekleştirilir ve blok yüklemeleri veya aralıklı okumalar gibi bölümlerde veriler aktarıldığında bile blob'un tamamının doğrulanması sağlanır. Daha fazla ayrıntı için bkz. Yapılandırılmış Gövde Biçimi .

Aktarım doğrulama seçenekleri, blobclient örneğinden çağrılan tüm yöntemlere doğrulama seçenekleri uygulayan BlobClientConfig kullanılarak istemci düzeyinde tanımlanabilir. Alternatif olarak, BlobDownloadOptions gibi seçenekler aracılığıyla işlem düzeyinde aktarım doğrulama seçeneklerini geçersiz kılabilirsiniz.

const blobServiceClient = new BlobServiceClient(
   `https://${account}.blob.core.windows.net`,
   new DefaultAzureCredential(),
   {
     uploadContentChecksumAlgorithm: "StorageCrc64",
     downloadContentChecksumAlgorithm: "StorageCrc64",
   }
);

Kaynaklar

JavaScript için Azure Blob Depolama istemci kitaplığını kullanarak blobları indirme hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın.

Kod örnekleri

Bu makaledeki kod örneklerini görüntüleyin (GitHub):

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ı indirmek için istemci kitaplığı yöntemleri aşağıdaki REST API işlemini kullanır:

İstemci kütüphane kaynakları

  • Bu makale, JavaScript/TypeScript için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Daha fazla bilgi edinmek için JavaScript/TypeScript uygulamanızı derleme makalelerinde geliştirici kılavuzu makalelerinin tam listesine bakın.