Я пытаюсь перечислить пути в файловой системе в 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.net`,
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();