Мы используем NodeJS @ azure / storage-blob SDK для доступа к контейнеру / блобам в нашей организации. У нас есть система, в которой пользователи могут получить доступ к закрытым контейнерам, войдя на наши серверы, и их учетные записи добавляются через нашего администратора к определенным ролям IAM ( Либо предоставляя им доступ для чтения / записи / удаления к BLOB-объектам ).
Теперь мы хотим, чтобы некоторые новые пользователи имели доступ к publi c container / blobs по умолчанию. Мы сделали контейнер publi c и ссылки publi c на эти контейнеры / BLOB-объекты хранения доступны по URL, но при попытке доступа к ним через NodeJS API мы получаем " AuthorizationPermissionMismatch"ошибка.
Код, который мы используем ниже:
function getBlobDirectories(result) {
console.log(result);
}
function errorinlisting(err) {
console.log(err);
}
const containerClient = global.getBlobService(this.storageAccount,req.user).getContainerClient(this.containerName);
let blobDirIterator = containerClient.listBlobsByHierarchy('/');
blobDirIterator.next().then(getBlobDirectories).catch(errorinlisting);
Функция getBlobService выглядит следующим образом:
exports.getBlobService = (storageAcc, user)=> {
const account = storageAcc;
const accountKey = storageaccountkeys[storageAcc]
let blobServiceClient;
const simpleTokenCredential = new SimpleTokenCredential(user.azureToken);
blobServiceClient = new BlobServiceClient(
`https://${account}.blob.core.windows.net`,
simpleTokenCredential
);
return blobServiceClient;
}
Вызов listBlobsByHierarchy, в результате возникает ошибка, которая вызывает приведенный выше вызов функции errorinlisting
с ошибкой " AuthorizationPermissionMismatch " ..
В чем может быть проблема? Это ошибка в NodeJS API?
Любая помощь будет неоценимой.