Télécharger un objet Blob avec JavaScript
Cet article montre comment télécharger un objet blob en utilisant la Bibliothèque de client Stockage Azure pour JavaScript. Vous pouvez télécharger des données blob vers différentes destinations, notamment un chemin d’accès de fichier local, un flux ou une chaîne de texte.
Prérequis
- Les exemples de cet article supposent que vous disposez déjà d'un projet configuré pour fonctionner avec la bibliothèque client Azure Blob Storage pour JavaScript. Pour en savoir plus sur la configuration de votre projet, y compris l'installation de packages, l'importation de modules et la création d'un objet client autorisé pour travailler avec des ressources de données, consultez Démarrer avec Stockage Blob Azure et JavaScript.
- Le mécanisme d’autorisation doit disposer des autorisations nécessaires pour effectuer une opération de téléchargement. Pour en savoir plus, consultez les conseils d’autorisation pour l’opération d’API REST suivante :
Télécharger un objet blob
Vous pouvez utiliser l’une des méthodes suivantes pour télécharger un objet blob :
- BlobClient.download
- BlobClient.downloadToBuffer (disponible uniquement dans un runtime Node.js)
- BlobClient.downloadToFile (disponible uniquement dans un runtime Node.js)
Télécharger dans un chemin de fichier
L’exemple suivant télécharge un objet Blob en utilisant un chemin d’accès à un fichier avec la méthode BlobClient.downloadToFile. Cette méthode n’est disponible que dans le runtime Node.js :
async function downloadBlobToFile(containerClient, blobName, fileNameWithPath) {
const blobClient = containerClient.getBlobClient(blobName);
await blobClient.downloadToFile(fileNameWithPath);
console.log(`download of ${blobName} success`);
}
Télécharger en tant que flux
L’exemple suivant télécharge un objet Blob en créant un objet de flux accessible en écriture Node.js puis en passant les données à ce flux avec la méthode 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`);
}
Télécharger dans une chaîne
L’exemple Node.js suivant télécharge un objet blob vers une chaîne de caractères avec la méthode BlobClient.download. Dans Node.js, les données blob sont retournées dans un 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);
});
}
Si vous utilisez JavaScript dans le navigateur, les données blob sont retournées dans un blobBody Promise. Pour plus d’informations, consultez l’exemple d’utilisation pour navigateurs dans BlobClient.download.
Ressources
Pour en savoir plus sur le téléchargement d’objets blob à l’aide de la bibliothèque de client Stockage Blob Azure pour JavaScript, consultez les ressources suivantes.
Opérations de l'API REST
Le Kit de développement logiciel (SDK) Azure pour JavaScript contient des bibliothèques qui s'appuient sur l'API REST Azure, vous permettant d’interagir avec les opérations de l’API REST par le biais de paradigmes JavaScript familiers. Les méthodes de bibliothèque de client pour télécharger des objets blob utilisent l’opération d’API REST suivante :
- Get Blob (API REST)
Exemples de code
Afficher des exemples de code de cet article (GitHub) :