更新时间:2023-04-11 GMT+08:00

MoXing Framework简介

MoXing Framework模块为MoXing提供基础公共组件,例如访问华为云的OBS服务,和具体的AI引擎解耦,在ModelArts支持的所有AI引擎(TensorFlow、MXNet、PyTorch、MindSpore等)下均可以使用。目前,提供的MoXing Framework功能中主要包含操作OBS组件,即下文中描述的mox.file接口。

为什么要用mox.file

OBS服务是一个基于对象的海量存储服务,无法通过像访问unix本地文件系统那样访问OBS上的文件,必须通过网络请求读写文件。为了在ModelArts服务中,更便捷的访问OBS目录,建议通过MoXing Framework(mox.file)对OBS目录进行操作。

通常Python打开一个本地文件,如下所示:

1
2
with open('/tmp/a.txt', 'r') as f:
  print(f.read())

OBS目录通常以“obs://”开头,比如“obs://bucket/XXX.txt”。用户无法直接使用open方法打开OBS文件,上面描述的打开本地文件的代码将会报错。

OBS提供了很多方式和工具给用户使用,如SDK、API、console、OBS Browser等,ModelArts mox.file提供了一套更为方便的访问OBS的API,允许用户通过一系列模仿操作本地文件系统的API来操作OBS文件。例如,可以使用以下代码来打开一个OBS上的文件。

1
2
3
import moxing as mox
with mox.file.File('obs://bucket_name/a.txt', 'r') as f:
  print(f.read())

例如,列举一个本地路径会使用如下Python代码。

1
2
import os
os.listdir('/tmp/my_dir/')

如果想要列举一个OBS路径,mox.file则需要如下代码:

1
2
import moxing as mox
mox.file.list_directory('obs://bucket_name/my_dir/')