如何允许用户在我的服务器上运行存储在我的数据库中的 jupyter 笔记本?

Posted

技术标签:

【中文标题】如何允许用户在我的服务器上运行存储在我的数据库中的 jupyter 笔记本?【英文标题】:How to allow users to run jupyter notebooks stored in my database on my server? 【发布时间】:2020-11-24 07:41:58 【问题描述】:

我有一个问题,我需要提示如何解决这个问题。

我有 django 应用程序,其中我的数据库中存储了 sme jupyter 笔记本。此时,用户可以下载笔记本并在他们的计算机上运行它们。

我想添加功能,用户可以在线运行笔记本。我在想两个解决方案:

第一个是使用一些免费的在线服务,例如 google colab,但我还没有找到任何可以从我的数据库发送文件的 api(也许你知道一些?), 其次是在我的服务器上运行 jupyter hub。我看到了如何远程运行 jupyter hub,但我不知道如何授予用户访问权限,因此他们可以同时运行笔记本,并且他们无法通过它访问服务器本身,并在 django 中完成所有这些。

你有什么提示可以帮助我获得这个功能吗?

【问题讨论】:

要在 colab 中运行您的笔记本,您必须将其存储在 GitHub 或 Google Drive 中。 【参考方案1】:

如果您信任您的用户,JupyterHub 是一个不错的方法。但是,如果您想运行不受信任的代码(如 Google Colab 那样),则需要沙盒。在这种情况下,您可以使用 Docker 映像来运行笔记本。例如,mikebirdgeneau/jupyterlab。还有一个 docker-compose 文件示例:https://github.com/mikebirdgeneau/jupyterlab-docker/blob/master/docker-compose.yml

【讨论】:

谢谢,我可以试试,但我对 docker 不是很有经验,所以我有一个快速的问题可以帮助我解决问题 - 如果它是一张图片,我可以在上面运行所有笔记本,还是每个笔记本我必须先运行新图像? 每个用户的新容器。换句话说,每个用户都有一个单独的沙箱。否则,一个用户可以控制所有其他环境(例如窃取和损坏数据)。

以上是关于如何允许用户在我的服务器上运行存储在我的数据库中的 jupyter 笔记本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的移动设备上存储配置信息?

如何在我的网络服务器上不断运行我的时间敏感文件删除脚本

如何允许用户在我的 MVC 网站上创建自己的子域? [复制]

如何从iOS中的设置处理推送通知允许

Chrome 上的阅读器模式允许用户在我的网站上复制文本。如何禁用它?

如何获取在我的网站上发帖的用户的地理区域并将其存储在数据库中[关闭]