Согласно моим исследованиям, если мы используем SDK @ azure / storage-blob версии V10, мы можем напрямую использовать Azure AD токен доступа для управления azure службой BLOB-объектов. Потому что SDK предоставляет класс TokenCredential
. Мы можем использовать код const tokenCredential = new azure.TokenCredential("token")
для инициализации учетных данных, а затем использовать его для получения BLOB-объектов.
, например
const azure = require("@azure/storage-blob");
async function getBlobContent(){
const tokenCredential = new azure.TokenCredential("")
const pipeline = azure.StorageURL.newPipeline(tokenCredential)
const serviceURL = new azure.ServiceURL(`https://jimtestperfdiag516.blob.core.windows.net`, pipeline);
const containerURL = azure.ContainerURL.fromServiceURL(serviceURL, "test");
const blockBlobURL = azure.BlockBlobURL.fromContainerURL(containerURL, "test.csv");
const aborter=azure.Aborter.timeout(30* 60 * 1000)
const downloadResponse = await blockBlobURL.download(aborter, 0);
const downloadedContent = await streamToString(downloadResponse.readableStreamBody);
console.log(`Downloaded blob content: "${downloadedContent}"`);
}
async function streamToString(readableStream) {
return new Promise((resolve, reject) => {
const chunks = [];
readableStream.on("data", data => {
chunks.push(data.toString());
});
readableStream.on("end", () => {
resolve(chunks.join(""));
});
readableStream.on("error", reject);
});
}
getBlobContent()
.then(() => {
console.log("Successfully executed sample.");
})
.catch((err) => {
console.log(err.message);
});
Для получения более подробной информации см. https://www.npmjs.com/package/@azure / storage -blob / v / 10.5.0 и https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-nodejs-legacy.
Кроме того, обратите внимание, что если вы хотите получить доступ к azure blob с Azure AD, нам нужно назначить роль RABS (владелец данных хранилища BLOB-объектов, хранилище данных BLOB-объектов хранилища или устройство чтения данных BLOB-объектов хранилища) для пользователя или участника службы: https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad