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

gcsfs:用本地文件系统的方式操作Google Cloud Storage

文章目录

  • gcsfs:用本地文件系统的方式操作Google Cloud Storage
    • 1、这工具是干嘛的
    • 2、支持两种高级存储模式
    • 3、认证方式很全
    • 4、异步支持
    • 5、适合谁用

gcsfs:用本地文件系统的方式操作Google Cloud Storage

gcsfs在GitHub上已有391 Star。

这是一个Python库,做的事情很简单:把Google Cloud Storage当成本地文件系统来用。基于fsspec框架,你可以像操作本地目录一样读写云端存储桶里的文件。对于习惯用Python处理文件的人来说,这意味着不需要学习新的存储API,直接复用已有的文件操作经验。

1、这工具是干嘛的

Google Cloud Storage是GCP的对象存储服务,但原生API并不符合多数开发者的操作习惯。gcsfs在中间搭了一层抽象,把bucket映射为目录,把对象映射为文件。

安装只需要一行:

pipinstallgcsfs

或者用conda:

condainstall-cconda-forge gcsfs

引入后初始化文件系统对象:

importgcsfs fs=gcsfs.GCSFileSystem(project='my-google-project')files=fs.ls('my-bucket')withfs.open('my-bucket/data.txt','rb')asf:content=f.read()

代码风格和标准库的open()os.listdir()基本一致,几乎没有学习成本。因为兼容fsspec接口,gcsfs可以和pandas、dask、xarray等库直接配合,读取存储在GCS上的数据文件时不需要额外适配。

2、支持两种高级存储模式

gcsfs近期加入了对Google Cloud Storage新特性的自动支持。

Hierarchical Namespace(HNS)

传统GCS是扁平命名空间,目录只是前缀模拟。HNS引入真正的逻辑目录结构,带来几个实际好处:

  • 目录重命名和移动变为O(1)的元数据操作,不再需要对每个对象执行复制加删除。
  • 读写QPS提升最高可达8倍。
  • 适合管理大量小文件,比如AI训练checkpoint和日志。

Rapid Buckets(Zonal Storage)

这是面向低延迟、高吞吐场景的区域存储:

  • 数据与GPU/TPU集群位于同一可用区,网络延迟最小。
  • 支持在现有对象上追加数据,标准GCS对象不支持此操作。
  • 针对高速模型加载和实时日志流做了优化。

3、认证方式很全

gcsfs覆盖了常见的GCP认证场景:

  • 默认模式:自动读取本地gcloud凭据或环境变量中的服务账户。
  • Cloud模式:显式使用Google元数据服务。
  • 匿名模式:无需登录即可访问公开数据。
  • 服务账户模式:直接传入JSON密钥文件路径。

4、异步支持

底层基于aiohttp构建。高并发场景下,初始化时传入asynchronous=True即可使用异步API,适合IO密集型任务。

5、适合谁用

  • 在GCP上做数据分析,需要把GCS数据接入pandas、dask、xarray的人。
  • 构建ETL管线,需要在云端和本地之间频繁搬运文件的人。
  • 写AI训练代码,需要把checkpoint存到对象存储的人。
  • 做数据平台开发,需要统一接口访问本地和云端存储的人。

这个项目由fsspec社区维护,Anaconda也提供了部分资金支持。

int存到对象存储的人。

  • 做数据平台开发,需要统一接口访问本地和云端存储的人。

这个项目由fsspec社区维护,Anaconda也提供了部分资金支持。

http://www.gsyq.cn/news/1587195.html

相关文章:

  • 2026年6月远程控制软件办公横评:ToDesk、向日葵、UU远程中,UU远程办公体验再度碾压!
  • 神经免疫:CNS 三大顶刊接连刊发重磅研究
  • AI一周事件 · 2026.06.17-06.23
  • 基于双向循环链表的C语言贪吃蛇游戏开发实战(OpenCode 在线开发)
  • G-Helper终极指南:华硕笔记本性能优化与自定义控制完全教程
  • 个人项目月度支出审计:识别并消除四类隐性成本,每月节省1500元的实操复盘
  • 系统级工具链开发:Cargo 工作区管理与并发安全的工程实践
  • LLM微调实战:成本控制、效果优化与PEFT落地指南
  • Nacos安全加固实战:使用BCrypt加密修改默认账号密码
  • AI生成内容的可信边界与工程化落地实践
  • Allure测试报告生成与深度分析:从接口自动化到质量闭环
  • 插花艺术交流平台
  • 百度网盘登录故障,显示网络开小差了
  • 先汇报一下进度
  • Token(词元),5分钟彻底搞懂
  • 异化与伪饰:波普尔病毒的形而上学批判与大模型时代的认知危机
  • AWS re:Invent 2021 AI/ML技术路线图:架构师级工程实践指南
  • 实战 LangGraph 循环执行:构建带自动重试的并行任务流
  • 解锁无损音乐宝藏:TIDAL Downloader Next Generation 让你的音乐收藏焕然一新![特殊字符]
  • LSTM序列分类实战:门控机制、双向设计与工程调优指南
  • 从零学习Kafka:生产者分区机制
  • 分钟看懂p值和置信区间:别再被_显著_忽悠了
  • 《HarmonyOS技术精讲-UI开发 (基于NDK构建UI)》第4篇:高效Canvas绘制——NDK中的2D渲染加速
  • 九大网盘直链下载助手完整指南:免费高速下载终极方案
  • MPC8360E内存控制器深度解析:SDRAM时序与UPM可编程接口实战
  • hcip二层综合实验
  • AI领域每日资讯报告(2026年6月24日)
  • TFRecord写入最佳实践:从数据序列化到生产级稳定性
  • 2026降AI率工具红黑榜:降AI率网站怎么选?这份榜单够用!
  • 从C到C++:从结构体到类,面向对象初体验