Megosztás a következőn keresztül:


Blob letöltése TypeScript használatával

Ez a cikk bemutatja, hogyan tölthet le egy blobot a JavaScripthez készült Azure Storage-ügyfélkódtár használatával. Blobadatokat különböző célhelyekre tölthet le, például helyi fájl elérési útját, streamét vagy szöveges sztringet.

Előfeltételek

  • A cikkben szereplő példák feltételezik, hogy már rendelkezik egy projekttel, amely a JavaScripthez készült Azure Blob Storage ügyfélkódtárral dolgozik. Ha többet szeretne megtudni a projekt beállításáról, beleértve a csomagtelepítést, a modulok importálását és egy engedélyezett ügyfélobjektum létrehozását az adaterőforrások használatához, olvassa el az Azure Blob Storage és a TypeScript használatának első lépéseit.
  • Az engedélyezési mechanizmusnak rendelkeznie kell a letöltési művelet végrehajtásához szükséges engedélyekkel. További információkért tekintse meg az alábbi REST API-művelet engedélyezési útmutatóját:

Blob letöltése

A blobok letöltéséhez az alábbi módszerek bármelyikét használhatja:

Letöltés fájlelérési útvonalra

Az alábbi példa egy blobot tölt le a BlobClient.downloadToFile metódussal egy fájl elérési útján. Ez a módszer csak a Node.js futtatókörnyezetben érhető el:

async function downloadBlobToFile(
  containerClient: ContainerClient,
  blobName,
  fileNameWithPath
): Promise<void> {
  const blobClient = await containerClient.getBlobClient(blobName);

  const downloadResult = await blobClient.downloadToFile(fileNameWithPath);
  if (!downloadResult.errorCode) {
    console.log(
      `download of ${blobName} success ${downloadResult.blobCommittedBlockCount}`
    );
  }
}

Letöltés streamként

Az alábbi példa egy blobot tölt le egy Node.js írható streamobjektum létrehozásával, majd a BlobClient.download metódussal a streamhez való pipálással.

async function downloadBlobAsStream(
  containerClient: ContainerClient,
  blobName,
  writableStream
) {
  const blobClient: BlobClient = await containerClient.getBlobClient(blobName);

  const downloadResponse = await blobClient.download();

  if (!downloadResponse.errorCode && downloadResponse?.readableStreamBody) {
    downloadResponse.readableStreamBody.pipe(writableStream);
    console.log(`download of ${blobName} succeeded`);
  }
}

Letöltés sztringre

Az alábbi Node.js példa egy BlobClient.download metódussal rendelkező sztringre tölt le egy blobot. A Node.js blobadatok egy readableStreamBody.

async function downloadBlobToString(
  containerClient: ContainerClient,
  blobName
): Promise<void> {
  const blobClient: BlobClient = await containerClient.getBlobClient(blobName);

  const downloadResponse: BlobDownloadResponseParsed =
    await blobClient.download();

  if (!downloadResponse.errorCode && downloadResponse.readableStreamBody) {
    const downloaded = await streamToBuffer(
      downloadResponse.readableStreamBody
    );
    if (downloaded) {
      console.log('Downloaded blob content:', downloaded.toString());
    }
  }
}
async function streamToBuffer(readableStream) {
  return new Promise((resolve, reject) => {
    const chunks: Buffer[] = [];

    readableStream.on('data', (data) => {
      const content: Buffer = data instanceof Buffer ? data : Buffer.from(data);
      chunks.push(content);
    });
    readableStream.on('end', () => {
      resolve(Buffer.concat(chunks));
    });
    readableStream.on('error', reject);
  });
}

Ha JavaScriptet használ a böngészőben, a blobadatok egy ígéretes blobBody-ban térnek vissza. További információkért tekintse meg a blobClient.download böngészőkre vonatkozó példahasználatát.

Források

Ha többet szeretne megtudni arról, hogyan tölthet le blobokat az Azure Blob Storage JavaScripthez és TypeScripthez készült ügyfélkódtárával, tekintse meg az alábbi erőforrásokat.

REST API-műveletek

Az Azure SDK for JavaScript és TypeScript olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismerős nyelvi paradigmákon keresztül. A blobok letöltéséhez használt ügyfélkódtár-metódusok a következő REST API-műveletet használják:

Kódminták

Kódminták megtekintése ebből a cikkből (GitHub):

Ügyfélkódtár erőforrásai