如何在Notebook中上传下载OBS文件?
在Notebook中可以通过调用ModelArts的Moxing接口或者SDK接口与OBS交互,将Notebook中的文件上传至OBS,或者下载OBS中的文件至Notebook中。
![](https://support.huaweicloud.com/modelarts_faq/figure/zh-cn_image_0000001475866766.png)
使用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。请依次排查:
- 请确保读取的OBS桶和Notebook处于同一站点区域,例如:都在华北-北京四站点。不支持跨站点访问OBS桶。具体请参见查看OBS桶与ModelArts是否在同一个区域。
- 请确认操作Notebook的账号有权限读取OBS桶中的数据。如没有权限,请参见在Notebook中,如何访问其他账号的OBS桶?。