跳转到主要内容

Jupyter的文件系统类多内容管理后端

项目描述

jupyter-fs jupyter-fs

build status pypi package npm package

这是一个JupyterLab插件,允许您设置并使用任意数量的文件浏览器,连接到您想要的任何本地和/或远程类似文件系统的资源。

后端基于PyFilesystem构建,而前端基于JupyterLab Filetree构建。

安装

pip install jupyter-fs

配置

将以下内容添加到您的jupyter_server_config.json

{
  "ServerApp": {
    "contents_manager_class": "jupyterfs.metamanager.MetaManager",
    "jpserver_extensions": {
      "jupyterfs.extension": true
    }
  }
}

简单使用(无认证/凭据)

在您的用户设置中添加额外的内容管理器规范(在设置菜单下的高级设置编辑器 -> jupyter-fs)。以下是一个示例配置,用于设置几个并排的新文件浏览器

{
  "resources": [
    {
      "name": "root at test dir",
      "url": "osfs:///Users/foo/test"
    },
    {
      "name": "s3 test bucket",
      "url": "s3://test"
    },
    {
      "name": "s3 test key",
      "url": "s3://test-2/prefix/",
      "defaultWritable": false
    },
    {
      "name": "samba guest share",
      "url": "smb://guest@127.0.0.1/test?name-port=3669"
    }
  ]
}

保存设置后,您应该会立即在左侧侧边栏中看到您的新文件浏览器

使用认证/凭据

任何被双括号{{VAR}}包围的"url"片段将被视为模板,并由jupyter-fs的认证系统处理。例如,您可以通过修改其"url"来将用户名/密码传递给上述示例中的"samba guest share"资源

{
  "resources": [
    ...

    {
      "name": "samba share",
      "url": "smb://{{user}}:{{passwd}}@127.0.0.1/test?name-port=3669"
    }
  ]
}

保存上述"资源"配置时,将弹出一个对话框,要求输入用户名密码

输入这些值并点击确定后,新的文件浏览器将立即出现在侧边栏中

认证对话框仅在需要时出现

jupyter-fs认证对话框仅在以下情况下出现

  • JupyterLab首次加载时,如果任何fs资源需要认证
  • 添加了需要认证的新fs资源,或其"url"字段已修改

支持的文件系统

每个文件浏览器将指向的资源类型由其url开头的协议决定

  • osfs: os file system。这将打开一个新视图,显示您本地的文件系统,根路径由指定
  • s3: 打开指向Amazon S3桶的文件系统
  • smb: 打开指向Samba共享的文件系统

jupyter-fs可以打开指向PyFilesystem支持的任何资源的文件浏览器。目前,我们只在CI中测试了S3和smb/samba后端,因此其他PyFilesystem后端的效果可能会有所不同。

文件系统url

jupyter-fs的"url"字段基于PyFilesystem的opener url标准。有关如何编写这些url的更多信息,请参阅相关PyFilesystem插件的文档

服务器端设置

如果您更喜欢在服务器端配置中设置文件系统资源,可以这样做。例如,您可以通过向您的jupyter_server_config.py文件添加以下内容来设置本地文件系统

c.JupyterFs.resources = [
    {
        "name": "local_test",
        "url": "osfs:///Users/foo/test"
    },
]

或者,您可以在jupyter_server_config.json文件中添加资源规范,与基本jupyter-fs配置一起

{
  "ServerApp": {
    "contents_manager_class": "jupyterfs.metamanager.MetaManager",
    "jpserver_extensions": {
      "jupyterfs.extension": true
    }
  },
  "JupyterFs": {
    "resources": [
      {
        "name": "local_test",
        "url": "osfs:///Users/foo/test"
      }
    ]
  }
}

任何服务器端配置文件中指定的文件系统资源将与用户设置中给出的资源合并。

开发

有关指南,请参阅CONTRIBUTING.md

许可证

此软件根据Apache 2.0许可证授权。有关详细信息,请参阅LICENSEAUTHORS文件。

由以下提供支持