当前位置: 首页 > 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.jsqmd.com/news/1075264/

相关文章:

  • 2026年6月远程控制软件办公横评:ToDesk、向日葵、UU远程中,UU远程办公体验再度碾压!
  • 高通 node简介
  • cert-manager:Kubernetes 证书管理,自动化到底
  • 神经免疫:CNS 三大顶刊接连刊发重磅研究
  • AI一周事件 · 2026.06.17-06.23
  • 擦肩的风,都是幸运的形状
  • MuleSoft+LLM企业级AI工作流:可审计、可灰度、可运维的集成实践
  • 告别风扇噪音焦虑:3分钟掌握Windows风扇智能控制终极方案
  • 基于双向循环链表的C语言贪吃蛇游戏开发实战(OpenCode 在线开发)
  • G-Helper终极指南:华硕笔记本性能优化与自定义控制完全教程
  • 个人项目月度支出审计:识别并消除四类隐性成本,每月节省1500元的实操复盘
  • 一篇文章如何入库的
  • 《人生底稿 38》赤峰收官返程:热忱现场与为打卡折返的名场面
  • AI编程助手终极对比:ClaudeCode vs OpenCode vs Codex
  • 系统级工具链开发:Cargo 工作区管理与并发安全的工程实践
  • LLM微调实战:成本控制、效果优化与PEFT落地指南
  • Nacos安全加固实战:使用BCrypt加密修改默认账号密码
  • ComfyUI-Impact-Pack终极指南:从入门到精通的5大核心功能详解
  • NXP AMCLIB跟踪观测器:电机无传感器控制的定点数实现与调试
  • GetQzonehistory:终极QQ空间数据备份工具完整指南
  • Allure测试报告生成与深度分析:从接口自动化到质量闭环
  • 插花艺术交流平台
  • 认知篇:正视焦虑,看清趋势(2)——项目的流程分工
  • AI生成内容的可信边界与工程化落地实践
  • AWS ECS部署Triton推理服务:GPU调度、模型热加载与生产级健康检查
  • DHCP 获取 IP 后免费 ARP 发送次数(分设备 / 系统)
  • 终极网盘下载加速指南:9大平台免费高速下载的完整解决方案
  • 每日 AI 研究简报 · 2026-06-24
  • 5步掌握iOS激活锁绕过:applera1n完整实践指南
  • Spring AI 实战指南(十五):AI Agent 中台源码级设计——从零实现自己的 Agent Framework