Scaricare un BLOB con JavaScript o TypeScript
Questo articolo illustra come scaricare un BLOB usando la libreria client di Archiviazione di Azure per JavaScript. È possibile scaricare dati BLOB in varie destinazioni, tra cui un percorso di file locale, un flusso o una stringa di testo.
Prerequisiti
- Gli esempi in questo articolo presuppongono che sia già stato configurato un progetto per l'uso con la libreria client di Archiviazione BLOB di Azure per JavaScript. Per informazioni sulla configurazione del progetto, incluse l'installazione del pacchetto, l'importazione di moduli e la creazione di un oggetto client autorizzato per l'uso con le risorse dati, consultare Introduzione ad Archiviazione BLOB di Azure e JavaScript.
- Il meccanismo di autorizzazione deve disporre delle autorizzazioni per eseguire un'operazione di download. Per altre informazioni, vedere le linee guida per l'autorizzazione per l'operazione API REST seguente:
Scaricare un BLOB
Per scaricare un BLOB è possibile usare uno qualsiasi dei metodi seguenti:
- BlobClient.download
- BlobClient.downloadToBuffer (disponibile solo nel runtime Node.js)
- BlobClient.downloadToFile (disponibile solo nel runtime Node.js)
Scaricare in un percorso di file
L'esempio seguente scarica un BLOB usando un percorso di file con il metodo BlobClient.downloadToFile. Questo metodo è disponibile solo nel runtime Node.js:
async function downloadBlobToFile(containerClient, blobName, localFilePath) {
const blobClient = containerClient.getBlobClient(blobName);
await blobClient.downloadToFile(localFilePath);
}
Scaricare come flusso
L'esempio seguente scarica un BLOB creando un oggetto flusso scrivibile di Node.js e quindi inviandolo tramite pipe a tale flusso con il metodo BlobClient.download.
async function downloadBlobAsStream(containerClient, blobName, writableStream) {
const blobClient = containerClient.getBlobClient(blobName);
const downloadResponse = await blobClient.download();
downloadResponse.readableStreamBody.pipe(writableStream);
}
Scaricare in una stringa
L'esempio di Node.js seguente scarica un BLOB in una stringa con il metodo BlobClient.download. In Node.js i dati BLOB vengono restituiti in un oggetto 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());
}
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);
});
}
Se si usa JavaScript nel browser, i dati BLOB vengono restituiti in una promessa blobBody. Per altre informazioni, vedere l'utilizzo di esempio per i browser in BlobClient.download.
Risorse
Per altre informazioni su come scaricare i BLOB tramite la libreria client di Archiviazione BLOB di Azure per JavaScript, vedere le risorse seguenti.
Esempi di codice
Vedere gli esempi di codice di questo articolo (GitHub):
Scaricare nel file per JavaScript o TypeScript
Download in streaming per JavaScript o TypeScript
Scaricare in stringa per JavaScript o TypeScript
Operazioni dell'API REST
Azure SDK per JavaScript contiene librerie basate sull'API REST di Azure che consentono di interagire con le operazioni dell'API REST tramite paradigmi noti di JavaScript. I metodi della libreria client per scaricare i BLOB usano l'operazione API REST seguente:
- Get Blob (API REST)
Risorse della libreria client
- Documentazione di riferimento della libreria client
- Codice sorgente della libreria client
- Pacchetto (npm)
Contenuto correlato
- Questo articolo fa parte della guida per sviluppatori di Archiviazione BLOB per JavaScript/TypeScript. Per altre informazioni, vedere l'elenco completo degli articoli della guida per sviluppatori in Creare l'app JavaScript/TypeScript.