Udostępnij za pośrednictwem


Pobieranie obiektu blob za pomocą języka JavaScript

W tym artykule pokazano, jak pobrać obiekt blob przy użyciu biblioteki klienta usługi Azure Storage dla języka JavaScript. Dane obiektu blob można pobrać do różnych miejsc docelowych, w tym lokalną ścieżkę pliku, strumień lub ciąg tekstowy.

Wymagania wstępne

  • W przykładach w tym artykule założono, że masz już skonfigurowany projekt do pracy z biblioteką klienta usługi Azure Blob Storage dla języka JavaScript. Aby dowiedzieć się więcej o konfigurowaniu projektu, w tym instalacji pakietu, importowaniu modułów i tworzeniu autoryzowanego obiektu klienta do pracy z zasobami danych, zobacz Rozpoczynanie pracy z usługami Azure Blob Storage i JavaScript.
  • Mechanizm autoryzacji musi mieć uprawnienia do wykonywania operacji pobierania. Aby dowiedzieć się więcej, zobacz wskazówki dotyczące autoryzacji dla następującej operacji interfejsu API REST:

Pobieranie obiektu blob

Aby pobrać obiekt blob, możesz użyć dowolnej z następujących metod:

Pobieranie do ścieżki pliku

Poniższy przykład pobiera obiekt blob przy użyciu ścieżki pliku z metodą BlobClient.downloadToFile . Ta metoda jest dostępna tylko w środowisku uruchomieniowym Node.js:

async function downloadBlobToFile(containerClient, blobName, fileNameWithPath) {

    const blobClient = containerClient.getBlobClient(blobName);
    
    await blobClient.downloadToFile(fileNameWithPath);
    console.log(`download of ${blobName} success`);
}

Pobieranie jako strumień

Poniższy przykład pobiera obiekt blob przez utworzenie obiektu strumienia z możliwością zapisu Node.js, a następnie potokowanie do tego strumienia za pomocą metody BlobClient.download .

async function downloadBlobAsStream(containerClient, blobName, writableStream) {

    const blobClient = containerClient.getBlobClient(blobName);

    const downloadResponse = await blobClient.download();

    downloadResponse.readableStreamBody.pipe(writableStream);
    console.log(`download of ${blobName} succeeded`);
}

Pobieranie do ciągu

Poniższy przykład Node.js pobiera obiekt blob do ciągu za pomocą metody BlobClient.download . W Node.js dane obiektów blob są zwracane w obiekcie readableStreamBody.


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());
}

async 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);
    });
}

Jeśli pracujesz z językiem JavaScript w przeglądarce, dane obiektów blob są zwracane w obiekcie blobBody obietnicy. Aby dowiedzieć się więcej, zobacz przykład użycia przeglądarek na stronie BlobClient.download.

Zasoby

Aby dowiedzieć się więcej na temat pobierania obiektów blob przy użyciu biblioteki klienta usługi Azure Blob Storage dla języka JavaScript, zobacz następujące zasoby.

Operacje interfejsu API REST

Zestaw Azure SDK dla języka JavaScript zawiera biblioteki, które bazują na interfejsie API REST platformy Azure, co umożliwia interakcję z operacjami interfejsu API REST za pomocą znanych paradygmatów języka JavaScript. Metody biblioteki klienta do pobierania obiektów blob używają następującej operacji interfejsu API REST:

Przykłady kodu

Wyświetl przykłady kodu z tego artykułu (GitHub):

Zasoby biblioteki klienta