在 azure blob 存储中,我可以为特定文件或容器创建具有读取权限的 Sas 密钥,但不能对目录执行此操作。
Azure Data Lake Storage Gen2 中是否有办法创建允许访问目录及其中所有文件的 Sas 密钥?如果有办法,我该怎么做?
在 azure blob 存储中,我可以为特定文件或容器创建具有读取权限的 Sas 密钥,但不能对目录执行此操作。
Azure Data Lake Storage Gen2 中是否有办法创建允许访问目录及其中所有文件的 Sas 密钥?如果有办法,我该怎么做?
据我所知,我们无法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);
}
具体做法和说明可以参考这个官方文档。