Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment télécharger un blob à l’aide de 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 Stockage Blob Azure 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 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, localFilePath) {
const blobClient = containerClient.getBlobClient(blobName);
await blobClient.downloadToFile(localFilePath);
}
Télécharger sous forme de 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);
}
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());
}
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 renvoyées dans la promesse blobBody. Pour plus d’informations, consultez l’exemple d’utilisation pour navigateurs dans BlobClient.download.
Validation du transfert de données lors du téléchargement
La validation de transfert avec CRC64-NVME fournit l’intégrité des données au niveau du client pour Stockage Blob Azure, ce qui vous permet de vérifier que les données envoyées par votre application sont les mêmes données stockées et lues à partir de Azure. Lorsqu’il est activé, le SDK Blob calcule et valide les sommes de contrôle CRC64-NVME pendant les opérations de chargement et de téléchargement, tandis que le service, de son côté, calcule et valide les sommes de contrôle CRC64-NVME pour les données qu’il reçoit et renvoie. La validation est effectuée sur chaque requête et sur le flux de données complet, ce qui garantit que l’ensemble de l’objet blob est vérifié même lorsque les données sont transférées dans des partitions telles que les chargements de bloc ou les lectures à plage. Pour plus d’informations, consultez Format de corps structuré .
Les options de validation de transfert peuvent être définies au niveau du client à l’aide de BlobClientConfig, qui applique les options de validation à toutes les méthodes appelées à partir d’une instance BlobClient . Vous pouvez également remplacer les options de validation de transfert au niveau de l’opération via des options telles que BlobDownloadOptions.
const blobServiceClient = new BlobServiceClient(
`https://${account}.blob.core.windows.net`,
new DefaultAzureCredential(),
{
uploadContentChecksumAlgorithm: "StorageCrc64",
downloadContentChecksumAlgorithm: "StorageCrc64",
}
);
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.
Exemples de code
Afficher des exemples de code de cet article (GitHub) :
Télécharger vers un fichier pour JavaScript ou TypeScript
Télécharger pour le streaming pour JavaScript ou TypeScript
Télécharger sous forme de chaîne de caractères pour JavaScript ou TypeScript
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)
Ressources de bibliothèque cliente
- Documentation de référence sur la bibliothèque cliente
- Code source de la bibliothèque de client
- Package (npm)
Contenu connexe
- Cet article fait partie du guide du développeur Stockage Blob pour JavaScript/TypeScript. Pour en savoir plus, consultez la liste complète des articles du guide du développeur sur Créez votre application JavaScript/TypeScript.