文件系统"/>
无法使用javascript列出Azure Datalake的文件系统
我正在尝试使用此代码列出Azure datalake中文件系统内的路径:
我能够检索$ {fileSystem.name},但是通过.listPaths()获得拒绝权限>
node:15660) UnhandledPromiseRejectionWarning: RestError: This request is not authorized to perform this operation using this permission.
我不确定我需要提供什么权限,该服务原则具有对datalake存储帐户的所有者访问权,还具有api权限
代码:
const { DataLakeServiceClient } = require('@azure/storage-file-datalake');
require('dotenv').config();
const account = 'xxx';
const defaultAzureCredential = new DefaultAzureCredential();
const datalakeServiceClient = new DataLakeServiceClient(
`https://${account}.dfs.core.windows`,
defaultAzureCredential
);
async function main() {
let i = 1;
let iter = await datalakeServiceClient.listFileSystems();
for await (const fileSystem of iter) {
console.log(`File system ${i++}: ${fileSystem.name} `);
const fileSystemClient = datalakeServiceClient.getFileSystemClient(fileSystem.name);
let iter = await fileSystemClient.listPaths();
for await (const path of iter) {
console.log(`Path ${i}: ${path.name}, is directory: ${path.isDirectory}`);
}
}
}
main();
[我正在尝试使用此代码列出Azure datalake中文件系统内的路径:我能够检索$ {fileSystem.name},但通过.listPaths()节点获取权限被拒绝:15660)...] >
回答如下:[要解决此问题,请在门户中导航至您的数据湖gen2存储帐户-> Access control (IAM)
->为您的服务主体分配Storage Blob Data Owner
角色。
更多推荐
无法使用javascript列出Azure Datalake的文件系统
发布评论