当前位置: 首页 > news >正文

adlfs:给 Azure 存储加一层 Pythonic 文件系统接口

文章目录

  • adlfs:给 Azure 存储加一层 Pythonic 文件系统接口
    • 1、这项目干什么的
    • 2、安装
    • 3、基本用法
    • 4、认证方式
    • 5、Blob 类型与限制
    • 6、适合谁用

adlfs:给 Azure 存储加一层 Pythonic 文件系统接口

adlfs 拿到 209 Star,属于 fsspec 生态的一员。它为 Azure Blob Storage 和 Azure Data Lake Storage Gen2 提供文件系统抽象,让 Python 开发者能用熟悉的文件操作语义读写云端数据。

1、这项目干什么的

adlfs 的核心定位是把 Azure 对象存储包装成标准文件系统接口。开发者不需要直接调用 Azure SDK 的底层 API,而是用 open、read、write 这类常规操作来处理云端文件。

它向 fsspec 注册了两个 URI 协议:az://abfs://。这意味着 Dask、Pandas 这类数据处理工具可以直接从 Azure 加载 CSV、Parquet 等格式,像操作本地文件一样自然。

2、安装

安装方式有两种,pip 或 conda 任选:

pipinstalladlfs
condainstall-cconda-forge adlfs

安装完成后,az://abfs://自动进入 fsspec 的 known_implementations 注册表,无需额外配置。

3、基本用法

连接 Azure 存储时,需要指定 account_name,并配合一种认证凭证。最常见的是 account_key:

importdask.dataframeasdd storage_options={'account_name':ACCOUNT_NAME,'account_key':ACCOUNT_KEY}ddf=dd.read_csv('abfs://container/folder/*.csv',storage_options=storage_options)ddf=dd.read_parquet('az://container/folder.parquet',storage_options=storage_options)

URI 格式支持三种写法:

PROTOCOL://container/path/file PROTOCOL://container@account.blob.core.windows.net/path/file PROTOCOL://container@account.dfs.core.windows.net/path/file

也支持通过环境变量传递凭证。设置 AZURE_STORAGE_ACCOUNT_NAME 和对应凭证变量后,storage_options 会自动读取。

4、认证方式

adlfs 支持的认证选项比较全:

  • connection_string:完整连接字符串
  • account_name + account_key:账户密钥
  • sas_token:共享访问签名
  • tenant_id + client_id + client_secret:Azure ServicePrincipal
  • anon=True:匿名访问,用于公共容器
  • 默认行为:未提供凭证时自动调用 DefaultAzureCredential

DefaultAzureCredential 会按 Azure 预定义的顺序尝试多种认证机制,包括环境变量、托管身份、Azure CLI 登录等。

5、Blob 类型与限制

默认写入创建 BlockBlob,写入后不可追加。需要追加写入的场景可以用mode="ab"创建 AppendBlob。 hierarchal namespaces 启用时,AppendBlob 功能不可用。

ADLS Gen1 已在 2024 年退役,adlfs 中的adl://协议也同步废弃。

6、适合谁用

  • 用 Python 处理 Azure 存储数据的工程师
  • 在 Dask 分布式场景下读写 Azure Blob 或 ADLS Gen2 的团队
  • 希望统一文件系统抽象、减少直接调用 Azure SDK 的项目

在 Dask 分布式场景下读写 Azure Blob 或 ADLS Gen2 的团队

  • 希望统一文件系统抽象、减少直接调用 Azure SDK 的项目
http://www.jsqmd.com/news/965124/

相关文章:

  • 国内场景告诉识别 无人机数据集 无人机视角下机动车辆 非机动车辆的航拍巡检数据集
  • GEO定位偏差0.8km就损失27%本地流量?——CSDN百万级AI营销项目验证的GEO优化7步校准法,SEO团队必须同步介入!
  • 量子资源态生成的GAN框架设计与应用
  • 2026年婚姻律师推荐:专业离婚/财产分割/抚养权纠纷,资深家事法律服务商权威解析与避坑指南 - 品牌企业推荐师(官方)
  • 团多项式归约到顶点覆盖
  • 到底为什么PHP要有反射?
  • 【冷门技术变现突围指南】:CSDN AI数字营销实测7类小众领域选题投产比,92%长尾流量提升来自这3个反常识策略?
  • Go 高并发网络编程:基于 sync.Pool 的高效字节切片池与 GC 性能调优实战
  • 魔兽争霸3终极优化指南:5分钟解决宽屏适配、地图加载与帧率锁定三大难题
  • Prompt-Hacking:比 p-hacking 更隐蔽的显著性幻觉
  • 从机载雷达到5G基站:缝隙天线阵列设计的‘变’与‘不变’(附现代设计工具链)
  • 2026液态硅胶表带开模技术拆解与实力供应商指南:液态硅胶开模、液态硅胶手表带开模、TPU手表带、固态硅胶手表带开模选择指南 - 优质品牌商家
  • Sketch MeaXure:如何彻底解决设计标注的三大痛点问题
  • 信号与系统/控制理论必备:手把手教你用部分分式展开法求拉普拉斯逆变换
  • 从游戏到生产力:AIDA64、Cinebench、3DMark全场景CPU压力测试指南
  • 2026年氟塑料液下泵头部企业实测排行盘点:耐磨脱硫泵/耐腐泵/耐腐耐磨液下泵/耐腐耐磨砂浆泵/耐腐耐腐循环泵/选择指南 - 优质品牌商家
  • 避坑指南:OneNET MQTT设备Topic订阅与发布,如何避免消息收不到?
  • DS18B20 vs LM335:用STM32实测两种温度传感器,精度、电路和代码到底差多少?
  • 别再手动复制了!用STM32CubeMX一键生成F4标准库工程(Keil MDK版)
  • 无人机避障新思路:拆解一篇CVPR论文,看事件相机如何实现毫秒级反应(附开源项目)
  • 3分钟极速上手:全能网盘直链解析工具实战指南
  • 【CSDN原创检测机制深度解密】:AI生成内容的5大绕过陷阱与3条合规红线
  • 终极实战指南:彻底解决ComfyUI-SUPIR内存访问冲突与系统崩溃问题
  • 2026定制焊料选型技术解析:焊环、粘带焊料、膏状助焊剂285、金基焊料、钎焊材料、钛基焊料、钯基焊料、银焊膏选择指南 - 优质品牌商家
  • TVA定位探索:控制与嵌入式的混合智能体
  • Hermes Agent 接入企业微信全流程指南|快速集成部署,打造企业智能办公助手
  • 数字电路课设别再头疼了!手把手教你用CD4518和74LS00搞定电子钟(附Proteus仿真文件)
  • 【C++11新章】列表初始化详解
  • 2026年合肥3+2学校推荐工作:趋势洞察与优质选择 - 2026年企业资讯
  • 2026年压力变送器厂家推荐:智能高精度/扩散硅/电容式/远传/防爆型压力变送器品牌与选型指南 - 品牌企业推荐师(官方)