文档首页/ AI开发平台ModelArts/ 常见问题/ Standard Notebook/ 文件上传下载/ 如何在Notebook中上传下载OBS文件?
更新时间:2024-09-05 GMT+08:00
分享

如何在Notebook中上传下载OBS文件?

在Notebook中可以通过调用ModelArts的Moxing接口或者SDK接口与OBS交互,将Notebook中的文件上传至OBS,或者下载OBS中的文件至Notebook中。

图1 Notebook中上传下载OBS文件

使用OBS客户端上传文件的操作指导:上传文件

方法一:在Notebook中通过Moxing上传下载OBS文件

MoXing是ModelArts自研的分布式训练加速框架,构建于开源的深度学习引擎TensorFlow、PyTorch等之上,使用MoXing API可让模型代码的编写更加简单、高效。

MoXing提供了一套文件对象API,可以用来读写OBS文件。

您可以通过MoXing API文档了解其与原生API对应关系,以及详细的接口调用示例,详细说明请参见MoXing文件操作

示例代码:

import moxing as mox

#下载一个OBS文件夹sub_dir_0,从OBS下载至Notebook
mox.file.copy_parallel('obs://bucket_name/sub_dir_0', '/home/ma-user/work/sub_dir_0')
#下载一个OBS文件obs_file.txt,从OBS下载至Notebook
mox.file.copy('obs://bucket_name/obs_file.txt', '/home/ma-user/work/obs_file.txt')

#上传一个OBS文件夹sub_dir_0,从Notebook上传至OBS
mox.file.copy_parallel('/home/ma-user/work/sub_dir_0', 'obs://bucket_name/sub_dir_0')
#上传一个OBS文件obs_file.txt,从Notebook上传至OBS
mox.file.copy('/home/ma-user/work/obs_file.txt', 'obs://bucket_name/obs_file.txt')

方法二:在Notebook中通过SDK上传下载OBS文件

使用ModelArts SDK接口将OBS中的文件下载到Notebook后进行操作。

示例代码:将OBS中的文件file1.txt下载到Notebook的/home/ma-user/work/路径下。其中,桶名称、文件夹和文件的名称均可以按照业务需求自定义。

1
2
3
from modelarts.session import Session
session = Session()
session.obs.download_file(src_obs_file="obs://bucket-name/dir1/file1.txt", dst_local_dir="/home/ma-user/work/")

使用ModelArts SDK接口将OBS中的文件夹下载到Notebook后进行操作。

示例代码:将OBS中的文件夹dir1下载到Notebook的/home/ma-user/work/路径下。其中,桶名称和文件夹的名称均可以按照业务需求自定义。

from modelarts.session import Session
session = Session()
session.obs.download_dir(src_obs_dir="obs://bucket-name/dir1/", dst_local_dir="/home/ma-user/work/")

使用ModelArts SDK接口将Notebook中的文件上传到OBS后进行操作。

示例代码:将Notebook中的file1.txt文件上传到OBS桶路径obs://bucket-name/dir1/中。其中,桶名称、文件夹和文件的名称均可以按照业务需求自定义。

1
2
3
from modelarts.session import Session
session = Session()
session.obs.upload_file(src_local_file='/home/ma-user/work/file1.txt', dst_obs_dir='obs://bucket-name/dir1/')

使用ModelArts SDK接口将Notebook中的文件夹上传到OBS。

示例代码:将Notebook中的文件夹“/work/”上传至“bucket-name”桶的“dir1”文件夹下,路径为“obs://bucket-name/dir1/work/”。其中,桶名称和文件夹的名称均可以按照业务需求自定义。

from modelarts.session import Session
session = Session()
session.obs.upload_dir(src_local_dir='/home/ma-user/work/', dst_obs_dir='obs://bucket-name/dir1/')

异常处理

通过OBS下载文件到Notebook中时,提示Permission denied。请依次排查:

相关文档