0

我正在尝试使用 npm storage-file-share从 Azure 文件共享中获取文件共享元数据。

代码片段如下,但在文档中找不到任何获取元数据的地方。

有什么方法可以从 azure 库中获取元数据或必须调用rest api吗?

const serviceClient = new ShareServiceClient(
      `https://${storageAccountName}.file.core.windows.net`,
      credential
    );
    const directoryClient  = serviceClient.getShareClient(shareName).getDirectoryClient(directoryPath);
    const dirIter = directoryClient.listFilesAndDirectories();
    const list = [];
    for await (const item of dirIter) {
        list.push({name: item.name, metadata????}); // Need item metadata 
    }
4

2 回答 2

1

您可以对和使用getProperties方法。下面是这个方法的定义:fetching metadatafiledirectory

返回文件的所有用户定义的元数据、标准 HTTP 属性和系统属性。它不返回文件的内容。

所以在你的代码 -> insidefor await (const item of dirIter)中,你需要判断它是否是 a fileor directory,然后调用该getProperties()方法。示例代码如下所示:

for await (const item of dirIter) {
      if (item.kind === "directory") {
        
        const mydirectory = directoryClient.getDirectoryClient(item.name);
        var diretory_properties = await mydirectory.getProperties();

        //for test, you can print out the metadata
        console.log(diretory_properties.metadata);

        //here, you can write code to add the metadata in your list

      } else {
        
        const myfile=directoryClient.getFileClient(item.name);
        var the_properties = await myfile.getProperties();

        //for test, you can print out the metadata
        console.log(the_properties.metadata)

       //here, you can write code to add the metadata in your list

      }
    }
于 2020-09-11T09:44:19.773 回答
0

您可以使用该方法getShareMetadata

fileService.getShareMetadata(shareName, function (error, result, response) {
于 2020-09-10T06:17:11.067 回答