越来越多的用户会选择在容器化的云算力上进行 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 模型训练等环境,它提供了更为灵活的文件操作支持。期待这一工具能在您的工作中发挥更大的作用。