更新时间:2024-08-23 GMT+08:00
分享

上传本地文件至JupyterLab

Notebook的JupyterLab中提供了多种方式上传文件。

上传文件要求

  • 对于大小不超过100MB的文件直接上传,并展示文件大小、上传进度及速度等详细信息。
  • 对于大小超过100MB不超过50GB的文件可以使用OBS中转,系统先将文件上传OBS(对象桶或并行文件系统),然后从OBS下载到Notebook,上传完成后,会将文件从OBS中删除。
  • 50GB以上的文件上传通过调用ModelArts SDK或者Moxing完成。
  • 对于Notebook当前目录下已经有同文件名称的文件,可以覆盖继续上传,也可以取消。
  • 支持10个文件同时上传,其余文件显示“等待上传”。不支持上传文件夹,可以将文件夹压缩成压缩包上传至Notebook后, 在Terminal中解压压缩包。
    unzip xxx.zip  #在xxx.zip压缩包所在路径直接解压

    解压命令的更多使用说明可以在主流搜索引擎中查找Linux解压命令操作。

  • 多个文件同时上传时,JupyterLab窗口最下面会显示上传文件总数和已上传文件数。

上传文件入口

方式一:使用JupyterLab打开一个运行中的Notebook环境。

图1 直接将文件拖拽到JupyterLab窗口左边的空白处上传。

方式二:单击窗口上方导航栏的ModelArts Upload Files按钮,打开文件上传界面,拖拽或者选择本地文件上传。

图2 单击窗口上方导航栏的ModelArts Upload Files按钮

上传本地小文件(100MB以内)至JupyterLab

对于大小不超过100MB的文件直接上传,并展示文件大小、上传进度及速度等详细信息。

图3 上传100MB以下小文件

文件上传完成后给出提示。

图4 上传成功

上传本地大文件(100MB~50GB)至JupyterLab

对于大小超过100MB不超过50GB的文件可以使用OBS中转,系统先将文件上传至OBS(对象桶或并行文件系统),然后从OBS下载到Notebook。下载完成后,ModelArts会将文件自动从OBS中删除。

例如,对于下面这种情况,可以通过“OBS中转”上传。

图5 通过OBS中转上传大文件

如果使用OBS中转需要提供一个OBS中转路径,可以通过以下三种方式提供:

图6 通过OBS中转路径上传

仅第一次单击“OBS中转”需要提供OBS中转路径,以后默认使用该路径直接上传,可以通过上传文件窗口左下角的设置按钮更新OBS中转路径。如图10所示。

  • 方式一:在输入框中直接输入有效的OBS中转路径,然后单击“确定”完成。
    图7 输入有效的OBS中转路径
  • 方式二:打开OBS File Browser选择一个OBS中转路径,然后单击“确定”完成。
    图8 打开OBS File Browser
  • 方式三:单击“使用默认路径”完成。
    图9 使用默认路径上传文件
    图10 设置本地文件OBS中转路径

完成OBS中转路径设置后,开始上传文件。

图11 上传文件

解压缩文件包

将文件以压缩包形式上传至Notebook JupyterLab后, 可在Terminal中解压缩文件包。

unzip xxx.zip  #在xxx.zip压缩包所在路径直接解压

解压命令的更多使用说明可以在主流搜索引擎中查找Linux解压命令操作。

上传本地超大文件(50GB以上)至JupyterLab

不支持在Notebook的JupyterLab中直接上传大小超过50GB的文件。

50GB以上的文件需要先从本地上传到OBS中,再在Notebook中调用ModelArts的Moxing接口或者SDK接口读写OBS中的文件。

图12 在Notebook中上传下载大文件

具体操作如下:

  1. 从本地上传文件至OBS。具体操作请参见上传文件至OBS桶
  2. 将OBS中的文件下载到Notebook,可以通过在Notebook中运行代码的方式完成数据下载,具体方式有2种,ModelArts的SDK接口或者调用MoXing接口。
    • 方法一:使用ModelArts SDK接口将OBS中的文件下载到Notebook后进行操作。

      示例代码:

      1
      2
      3
      from modelarts.session import Session
      session = Session()
      session.obs.copy("obs://bucket-name/obs_file.txt","/home/ma-user/work/")
      
    • 方法二:使用Moxing操作OBS文件将OBS中的文件同步到Notebook后进行操作。
      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')

      如果下载到Notebook中的是zip文件,在Terminal中执行下列命令,解压压缩包。

      unzip xxx.zip  #在xxx.zip压缩包所在路径直接解压

      代码执行完成后,参考图13打开Terminal后执行ls /home/ma-user/work命令查看下载到Notebook中的文件。或者在JupyterLab左侧导航中显示下载的文件,如果没有显示,请刷新后查看,如图14所示。

      图13 打开Terminal
      图14 查看下载到Notebook中的文件

异常处理

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

  • 请确保读取的OBS桶和Notebook处于同一站点区域,例如:都在华北-北京四站点。不支持跨站点访问OBS桶。
  • 请确认操作Notebook的账号有权限读取OBS桶中的数据。

具体请参见ModelArts中提示OBS路径错误

相关文档