一个由s3支持的用于jupyter的contentsmanager实现

s3contents的Python项目详细描述


Build StatusCoverage Status

S3目录

Jupyter的S3和GCS支持的ContentsManager实现

它的目标是成为jupyter标准文件系统支持的存储系统的一个透明的替代品。 通过这个jupyter内容管理器的实现,您可以保存所有的笔记本、常规文件、目录 结构直接指向一个s3/gcs bucket,它可以在aws/gcp上,也可以是与minio兼容的自托管s3 api。

虽然有些功能的实现已经可以在线使用(s3nbs3drive),但我无法使 它们适用于较新的Jupyter笔记本电脑安装。这是一个更好的测试 高度依赖于令人敬畏的PGContents

先决条件

向s3/gcs存储桶写入访问权限(有效凭据),这可以在aws/gcp或像minio这样的自托管s3上进行。

安装

$ pip install s3contents

Jupyter配置

通过填充缺少的值编辑~/.jupyter/jupyter_notebook_config.py

s3

froms3contentsimportS3ContentsManagerc=get_config()# Tell Jupyter to use S3ContentsManager for all storage.c.NotebookApp.contents_manager_class=S3ContentsManagerc.S3ContentsManager.access_key_id="<AWS Access Key ID / IAM Access Key ID>"c.S3ContentsManager.secret_access_key="<AWS Secret Access Key / IAM Secret Access Key>"c.S3ContentsManager.session_token="<AWS Session Token / IAM Session Token>"c.S3ContentsManager.bucket="<bucket-name>"# Optional settings:c.S3ContentsManager.prefix="this/is/a/prefix"c.S3ContentsManager.sse="AES256"c.S3ContentsManager.signature_version="s3v4"

例如play.minio.io:9000

froms3contentsimportS3ContentsManagerc=get_config()# Tell Jupyter to use S3ContentsManager for all storage.c.NotebookApp.contents_manager_class=S3ContentsManagerc.S3ContentsManager.access_key_id="Q3AM3UQ867SPQQA43P2F"c.S3ContentsManager.secret_access_key="zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"c.S3ContentsManager.endpoint_url="http://play.minio.io:9000"c.S3ContentsManager.bucket="s3contents-demo"c.S3ContentsManager.prefix="notebooks/test"

gcp

注意,文件~/.config/gcloud/application_default_credentials.json假定posix系统 当你这样做时gcloud init

froms3contentsimportGCSContentsManagerc=get_config(c.NotebookApp.contents_manager_class=GCSContentsManagerc.GCSContentsManager.project="<your-project>"c.GCSContentsManager.token="~/.config/gcloud/application_default_credentials.json"c.GCSContentsManager.bucket="<bucket-name>"

美国焊接学会

也可以使用amazon ec2实例中基于iam角色的对s3 bucket的访问;为此, 只要将access_key_idsecret_access_key设置为它们的默认值(None),并确保 ec2实例具有iam角色,该角色为bucket和必要的操作提供足够的权限。

访问本地文件

要访问S3中的本地文件和远程文件,可以使用pgcontents.

第一个:

pip install pgcontents

使用如下配置:

froms3contentsimportS3ContentsManagerfrompgcontents.hybridmanagerimportHybridContentsManagerfromIPython.html.services.contents.filemanagerimportFileContentsManagerc=get_config()c.NotebookApp.contents_manager_class=HybridContentsManagerc.HybridContentsManager.manager_classes={# Associate the root directory with a PostgresContentsManager.# This manager will receive all requests that don"t fall under any of the# other managers."":S3ContentsManager,# Associate /directory with a FileContentsManager."local_directory":FileContentsManager,}c.HybridContentsManager.manager_kwargs={# Args for root PostgresContentsManager."":{"access_key_id":"access-key","secret_access_key":"secret-key","endpoint_url":"http://localhost:9000","bucket":"notebooks",},# Args for the FileContentsManager mapped to /directory"local_directory":{"root_dir":"/Users/drodriguez/Downloads",},}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在java中使用REST/SOAP获取联邦快递的跟踪细节?   安卓将项目同步到github不会同步java源文件   JavaImpala通过jdbc使元数据无效   java如何在安卓中使用Chaquopy显示加载动画   java我应该使用void函数,但我不知道如何使用   java合并两个排序的ArrayList   通过点击ImageView在Android上生成java随机图像   java深度优先搜索错误   java在子类中初始化时设置泛型参数   java安卓:NFC意图在主项目所依赖的库中   java SSL错误证书错误   访问RadioButton数组时出现java Android NullPointerException   无法加载JNI共享库“C:\Program Files\Java\jdk1.7.0\U 40\bin\..\jre\bin\server\jvm.dll”   java如何检查jstl中是否存在hashmap值