You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ADLS Blob Storage ACL继承规则及服务主体上传权限配置咨询

问题根因

该问题由ACL配置逻辑错误 + SDK选型不匹配共同导致,不属于Azure存储API的BUG。

1. ACL配置的核心问题

ADLS Gen2中,对象所有者并不天生拥有该对象的读写执行权限,仅默认拥有修改该对象ACL的权限,访问权限仍受ACL条目控制:

  • 你当前仅在f3层级配置了默认ACL,f1、f2未配置默认ACL是符合要求的,不需要修改,父层级仅需保留my_sp的读+执行权限用于路径遍历即可。
  • 你当前f3的默认ACL中仅配置了Owner的默认权限,但未显式给my_sp配置全层级继承的rwx权限:新创建的f5、f6文件夹继承f3的默认ACL时,仅给Owner条目配置了权限,而my_sp的权限未显式继承,导致上传时无写入权限。

2. SDK选型问题

你使用的azure.storage.blob.BlobClient是面向普通Blob存储的兼容接口,对ADLS Gen2的层级命名空间ACL继承逻辑支持不完善:直接上传带多级不存在父目录的路径时,自动创建的中间目录不会正确继承上级默认ACL,需要改用专门的ADLS Gen2 SDK。


正确配置方案

步骤1:修正ACL配置

  • 保留现有c、f1、f2层级的ACL不变,满足父目录只读的要求。
  • 在f3层级的默认ACL中,显式添加my_sp的rwx(读、写、执行)默认权限,确保所有f3下新创建的子文件夹、文件自动继承该权限,无需依赖所有者身份授权。
  • 保留f3默认ACL中的mask为rwx,避免权限掩码过滤掉my_sp的写入权限。

步骤2:替换SDK调用(可选但推荐)

改用azure-storage-file-datalake库的DataLakeFileClient的upload_data方法执行上传,该接口原生支持层级命名空间的ACL继承规则,自动创建的中间目录会正确继承f3的默认ACL。


内容的提问来源于stack exchange,提问作者jugi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 17:36:01