
# 上传本地文件至JupyterLab
Notebook的JupyterLab中提供了多种方式上传文件。
#### 上传文件要求
- 对于大小不超过100MB的文件直接上传，并展示文件大小、上传进度及速度等详细信息。
- 对于大小超过100MB不超过5GB的文件可以使用OBS中转，系统先将文件上传OBS（对象桶或并行文件系统），然后从OBS下载到Notebook，上传完成后，会将文件从OBS中删除。
- 5GB以上的文件上传通过调用ModelArts SDK或者Moxing完成。
- 对于Notebook当前目录下已经有同文件名称的文件，可以覆盖继续上传，也可以取消。
- 支持10个文件同时上传，其余文件显示"等待上传"。不支持上传文件夹，可以将文件夹压缩成压缩包上传至Notebook后， 在Terminal中解压压缩包。
  ```
  unzip xxx.zip  # 在xxx.zip压缩包所在路径直接解压。
  ```
  解压命令的更多使用说明可以在主流搜索引擎中查找Linux解压命令操作。
  
- 多个文件同时上传时，JupyterLab窗口最下面会显示上传文件总数和已上传文件数。 ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001932612738.png)
  
 
#### 上传文件入口
方式一：使用JupyterLab打开一个运行中的Notebook环境。直接将文件拖拽到JupyterLab窗口左边的空白处上传。
图1拖拽文件至JupyterLab   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002686333147.png "点击放大")
方式二：单击窗口上方导航栏的![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654452464.png)ModelArts Upload Files按钮，打开文件上传界面，拖拽或者选择本地文件上传。
图2单击窗口上方导航栏的ModelArts Upload Files按钮   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002684452325.png)
#### 上传本地小文件（100MB以内）至JupyterLab
对于大小不超过100MB的文件直接上传，并展示文件大小、上传进度及速度等详细信息。
图3上传100MB以下小文件   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002684453463.png "点击放大")
文件上传完成后给出提示。
图4上传成功   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654293892.png "点击放大")
#### 上传本地大文件（100MB\~5GB）至JupyterLab
对于大小超过100MB不超过5GB的文件可以使用OBS中转，系统先将文件上传至OBS（对象桶或并行文件系统），然后从OBS下载到Notebook。下载完成后，ModelArts会将文件自动从OBS中删除。
例如，对于下面这种情况，可以通过"OBS中转"上传。
图5通过OBS中转上传大文件   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654457870.png "点击放大")
如果使用OBS中转需要提供一个OBS中转路径，可以通过以下方式提供：
图6通过OBS中转路径上传   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654298452.png "点击放大")
![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/note_3.0-zh-cn.png)
仅第一次单击"OBS中转"需要提供OBS中转路径，以后默认使用该路径直接上传，可以在上传文件窗口右上角单击"设置OBS中转"更新OBS中转路径。
图7设置OBS中转   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654460352.png "点击放大")
- 方式一：选择"使用默认路径"，单击"确定"。
  图8使用默认路径   
  ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654462958.png "点击放大")
  
  

- 方式二：选择"自定义路径"，在输入框中直接输入有效的OBS中转路径或者单击"浏览选择"，然后单击"确定"。
  图9自定义路径   
  ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654461688.png "点击放大")
  ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002686614297.png "点击放大")
  
完成OBS中转路径设置后，开始上传文件。
图10上传文件   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654461814.png "点击放大")
**解压缩文件包**
将文件以压缩包形式上传至Notebook JupyterLab后， 可在Terminal中解压缩文件包。
```
unzip xxx.zip  #在xxx.zip压缩包所在路径直接解压
```
解压命令的更多使用说明可以在主流搜索引擎中查找Linux解压命令操作。
#### 上传本地超大文件（5GB以上）至JupyterLab
不支持在Notebook的JupyterLab中直接上传大小超过5GB的文件。
5GB以上的文件需要先从本地上传到OBS中，再在Notebook中调用ModelArts的Moxing接口或者SDK接口读写OBS中的文件。
图11在Notebook中上传下载大文件   
![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001959692109.png)
具体操作如下：
1. 从本地上传文件至OBS。具体操作请参见[上传文件至OBS桶](https://support.huaweicloud.com/qs-obs/obs_qs_0001.html)。
2. 将OBS中的文件下载到Notebook，可以通过在Notebook中运行代码的方式完成数据下载，具体方式有2种，ModelArts的SDK接口或者调用MoXing接口。
   - 方法一：使用ModelArts SDK接口将OBS中的文件下载到Notebook后进行操作。 示例代码：
     ```
     from modelarts.session import Session
     session = Session()
     session.obs.copy("obs://bucket-name/obs_file.txt","/home/ma-user/work/")
     ```
     
   
   - 方法二：使用[Moxing操作OBS文件](https://support.huaweicloud.com/devtool-modelarts/modelarts_11_0005.html)将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压缩包所在路径直接解压
     ```
     代码执行完成后，参考[图12]打开Terminal后执行**ls /home/ma-user/work** 命令查看下载到Notebook中的文件。或者在JupyterLab左侧导航中显示下载的文件，如果没有显示，请刷新后查看，如[图13]所示。
     图12打开Terminal   
     ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002654301972.png)
     图13查看下载到Notebook中的文件   
     ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002684581559.png) 
    
 
#### 异常处理
通过OBS下载文件到Notebook中时，提示Permission denied。请依次排查：
- 请确保读取的OBS桶和Notebook处于同一站点区域，例如：都在华北-北京四站点。不支持跨站点访问OBS桶。
- 请确认操作Notebook的账号有权限读取OBS桶中的数据。
具体请参见[ModelArts中提示OBS路径错误](https://support.huaweicloud.com/trouble-modelarts/modelarts_13_0157.html)。
