最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

无法使用javascript列出Azure Datalake的文件系统

网站源码admin13浏览0评论

无法使用javascript列出Azure Datalake的文件系统

无法使用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角色。

发布评论

评论列表(0)

  1. 暂无评论