全新 JuiceFS Python SDK 快速上手

2024-10-14
于鸿儒(Herald Yu)

越来越多的用户会选择在容器化的云算力上进行 AI 模型训练,而这类环境往往没有访问 FUSE 模块的特权,这就导致无法在容器内挂载 JuiceFS。

JuiceFS 5.1 商业版推出了全新的 Python SDK,适用于云服务和企业版。一方面可以让用户绕过 FUSE 模块直接以编程的方式读写 JuiceFS 文件系统,另一方面也方便用户集成 JuiceFS 到自己的应用中,进行更为灵活的组合使用。

下文将简述 Python SDK 的用法,目前该功能仍处于 Beta 阶段,欢迎试用,并给我们一些建议和反馈。

安装与初始化

JuiceFS 的 Python SDK 要求用户具有 Python 3.8 或更高版本的环境,使用以下命令安装:

pip install https://static.juicefs.com/misc/juicefs-5.1.1-py3-none-any.whl

输入 JuiceFS 文件系统的相关信息初始化一个 Client 对象即可开始使用:

import juicefs

# 初始化 JuiceFS 客户端
jfs = juicefs.Client('volume-name',          # 文件系统名称
                    token='xxx',  # 文件系统 token
                    access_key='your-ak',    # 对象存储的 Access Key
                    secret_key='your-sk')    # 对象存储的 Secret Key

基本文件操作

JuiceFS 的 Python SDK 设计上借鉴了 Python 的 os 模块,对于熟悉 Python 语言的用户来说可以更快上手。

以下是支持的常用操作:

  • 列出文件:使用 listdir 方法列出目录中的文件。

  • 创建目录:通过 makedirs 方法创建新目录。

  • 检查文件存在性:用 exists 方法检测文件或目录是否存在。

  • 文件读写:使用 open 方法进行文件的写入和读取。

  • 删除文件:通过 remove 方法删除文件。

下面是基本的命令示例:

# 列出目录中的文件
jfs.listdir('/')

# 创建目录
jfs.makedirs("/files")

# 写入文件
with jfs.open("/files/hello.txt", "w") as f:
    f.write("hello")

# 读取文件
with jfs.open("/files/hello.txt") as f:
    data = f.read()
    print(data)

# 删除文件
jfs.remove("/files/hello.txt")

高级操作

JuiceFS 的 Python SDK 还支持修改文件权限、创建和读取符号链接、设置和获取扩展属性等高级操作。相关使用示例和 API 参考,请访问 JuiceFS 云服务文档以获取详细信息。

总结

JuiceFS 的 Python SDK 是探索高效使用和管理文件系统的全新尝试,特别是权限有限的容器、Serverless、AI 模型训练等环境,它提供了更为灵活的文件操作支持。期待这一工具能在您的工作中发挥更大的作用。

Author

于鸿儒(Herald Yu)

相关博客

详解 JuiceFS 在多云架构下的数据同步与一致性

2024-10-18
最新的 JuiceFS 企业版 5.1 中, 镜像文件系统除了支持读取,还新增了可直接写入的功能。本文将探讨镜像文件系统的读写实现原理。

JuiceFS 企业版 5.1:新增可写镜像、Python SDK 多项特性 ,强化 AI 场景支持

2024-09-14
JuiceFS 企业版 5.1 正式发布,为了更好地适应企业在多云和混合云架构下的数据管理,支持更广泛的 AI 应用场景,新版本增添了多项新特性,并在系统性能、可观测性方面等进行了全面的优化。

极限挑战:使用 Go 打造百亿级文件系统的实践之旅

2024-02-02
本文介绍了 JuiceFS 在设计元数据引擎时所做的关键决策,并详细介绍了内存池、自主管理小块内存、压缩空闲目录以及优化小文件格式这 4 个内存优化手段。

JuiceFS 企业版 5.0 新特性速览

2023-11-17
新版本首先带来了几个重要的新功能:支持共享块设备;把文件从分块格式合并还原成完整文件进行存储的“转存”功能;以及导入对象存储已有数据缓存支持。此外,还着重改善了分布式缓存相关的易用性和可观测性,相信…