0

在 azure blob 存储中,我可以为特定文件或容器创建具有读取权限的 Sas 密钥,但不能对目录执行此操作。

Azure Data Lake Storage Gen2 中是否有办法创建允许访问目录及其中所有文件的 Sas 密钥?如果有办法,我该怎么做?

4

1 回答 1

0

据我所知,我们无法SAS为 中的目录创建密钥Azure Data Lake Storage Gen2,但您可以使用访问控制列表设置文件和目录级别的权限。

.net例如,此示例获取并设置名为 的目录的 ACL my-directory。该字符串user::rwx,group::r-x,other::rw-赋予拥有用户读、写和执行权限,赋予拥有组仅读和执行权限,并赋予所有其他用户读和写权限。

public async Task ManageDirectoryACLs(DataLakeFileSystemClient fileSystemClient)
{
    DataLakeDirectoryClient directoryClient =
        fileSystemClient.GetDirectoryClient("my-directory");

    PathAccessControl directoryAccessControl =
        await directoryClient.GetAccessControlAsync();

    foreach (var item in directoryAccessControl.AccessControlList)
    {
        Console.WriteLine(item.ToString());
    }


    IList<PathAccessControlItem> accessControlList
        = PathAccessControlExtensions.ParseAccessControlList
        ("user::rwx,group::r-x,other::rw-");

    directoryClient.SetAccessControlList(accessControlList);

}

具体做法和说明可以参考这个官方文档

于 2020-08-25T02:02:45.533 回答