如何通过Zeppelin API从S3存储的JSON文件导入新笔记本?
用Zeppelin API从S3导入笔记本的命令行方案
嘿,这事儿其实用curl配合AWS CLI就能轻松搞定,我给你分两种方法讲,按需选就行:
方法一:先把S3的JSON文件下载到本地再导入
这种方法适合需要先检查JSON内容,或者后续还要复用本地文件的场景:
- 第一步:用AWS CLI把S3上的笔记本JSON文件下载到本地
aws s3 cp s3://你的存储桶名称/文件路径/你的笔记本文件.json ./本地笔记本副本.json - 第二步:调用Zeppelin的导入API,把本地JSON文件传进去
基础命令(如果Zeppelin没开认证的话):
如果Zeppelin开启了基础认证,记得加上用户名密码参数:curl -X POST \ -H "Content-Type: application/json" \ --data @本地笔记本副本.json \ http://你的Zeppelin服务器地址:端口/api/notebook/importcurl -X POST \ -u 你的用户名:你的密码 \ -H "Content-Type: application/json" \ --data @本地笔记本副本.json \ http://你的Zeppelin服务器地址:端口/api/notebook/import
方法二:直接从S3传输(不用存本地文件)
如果不想在本地留文件副本,可以用管道命令直接把S3的文件内容传给curl,一步到位:
aws s3 cp s3://你的存储桶名称/文件路径/你的笔记本文件.json - | \ curl -X POST \ -H "Content-Type: application/json" \ --data @- \ http://你的Zeppelin服务器地址:端口/api/notebook/import
同样,需要认证的话加上-u 你的用户名:你的密码参数就行。
几个关键点要注意:
--data @文件名是让curl读取指定文件的内容作为请求体;@-表示从标准输入(也就是管道传过来的内容)读取- Zeppelin默认端口是8080,要是你改了端口记得替换成实际值
- 确保你的AWS CLI已经配置好访问S3的权限,同时你有访问Zeppelin API的权限
内容的提问来源于stack exchange,提问作者Julián Gómez
相关产品推荐
相关产品推荐

