# Python SDK
# 1. 使用前必读
iS3二次开发软件开发工具包(iS3 Software Development Kit)是对平台提供服务进行的封装,以简化用户的开发工作。用户通过添加依赖或下载的方式调用API即可实现使用平台业务能力的目的,以下内容为Python SDK,Node.js SDK见SDK(Node.js) (opens new window)。
# 2. 如何调用SDK
# 2.1 准备环境
在使用iS3二次开发包SDK时,各语言需要准备的环境 参照下表
开发语言 | 准备项 | 说明 |
---|---|---|
PYTHON | 安装python (opens new window) | python版本sdk支持python3.10及以上。 |
Node.js | 安装Node.js (opens new window) | Node.js版本sdk支持Node.js 8.x版本。 |
# 2.2 申请账号
申请iS3平台的租户和用户账号,并成功登录iS3数字在线页面 (opens new window)
# 2.3 认证鉴权
与REST API调用方式类似,需要获取AK/SK来认证鉴权
AK/SK认证(静态令牌校验):通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。适用于分析服务和应用等后端自动访问接口的场景,可通过如下方式获取:
- 点击右上角 AK/SK管理
- 可以选择一个已有的,复制获得AK SK信息
或点击新增,输入该令牌的名称和描述信息,新增一个访问令牌
# 3. 接口调用方式
以下面第一个接口为例
from is3_python_sdk.data_query import iS3PythonApi
is3Api = iS3PythonApi(dataDto.headers, self.iS3Addr, dataDto.prjId)
query = {} # 请求体
response1 = is3Api.getMetaTableList(query)
# 3.1 查询metatable列表数据
接口方法:getMetaTableList(jsonData)
时序数据请求json结构体
{
"pageNumber": 1, # 查询哪一页
"pageSize": 13, # 每页展示的数据量
"prjId": "1821553930207760386", # 项目id
"desc": true, # 是否降序
"metaTableCode": "monVideo", # 元数据编码
"whereConditions": [ # 查询条件
{
"column": "sys_id",
"logic": "GT", # GT:表示大于;EQUALS:表示等于;LT:表示小于
"value": ""
}
]
}
非时序数据请求json结构体
{
"pageNumber": 1,
"pageSize": 13,
"prjId": "1821553930207760386",
"desc": true,
"metaTableCode": "monAlarmResult",
"startTime": "2024-10-30 11:43:21",
"endTime": "2024-11-29 11:43:21"
}
# 3.2 查询对象组列表 (查询iS3PythonAPi实例化时项目下的数据)
接口方法:getObjectList()
# 3.3 查询对象组的对象实例列表
接口方法:getObjsInstanceList(objsCode)
请求参数:
查询对象组的对象实例列表。
参数:
objsCode (str): 对象组编码。
# 3.4 查询对象组的对象实例列表
接口方法:getObjsSubTypeList(objsCode)
请求参数:
查询子类型列表
参数:
objsCode (str): 对象组编码。
# 3.5 查询对象组的对象实例列表
接口方法:getObjsSubDataList(objsCode, objCode, subMetaCode, jsonData)
请求参数:
查询子类型数据
参数:
objsCode (str): 对象组代码。
objCode (str): 对象编码。
subMetaCode (str): 子类型元数据编码。
jsonData (dict): 额外的请求参数,以 JSON 格式传递。包括分页、时间范围、比较条件等。
示例 json:
{
"pageNumber": 1, # 当前页码
"pageSize": 10, # 每页显示的数据条数
"startTime": "2024-07-01 15:53:32", # 查询开始时间
"endTime": "2024-09-01 15:53:32", # 查询结束时间
"keyValueCompareEnum": [], # 关键值比较条件
"desc": True # 是否按降序排列
}
# 3.6 创建本地临时文件夹
接口方法:preDirectory()
# 3.7 预下载
接口方法:preDownload(jsonData, outputFolderPath)
请求参数:
文件预下载到指定目录,local进行copy,online进行下载。
:param jsonData: 要处理的 JSON 数据,应该是字典或列表。
:param outputFolderPath: 输出文件夹路径。
# 3.8 将 JSON 字符串保存到指定的文件中
接口方法:saveJsonToFile(jsonString, filePath)
请求参数:
将 JSON 字符串保存到指定的文件中。
:param jsonString: 要保存到文件的 JSON 字符串。
:param filePath: 保存 JSON 数据的文件路径。
# 3.9 数据插入-支持批量
接口方法:addData(jsonData)
请求参数:
# 3.10 数据删除-支持批量
接口方法:addData(jsonData)
请求参数:
# 3.11 发送心跳
接口方法:asendHeartbeat(jsonData)
请求参数:
参数:
json (dict)
示例 json:
{
"customCode"(str), # 自定义编码
"data"(array(dict)), # 数据列表
}
# 3.12 根据自定义编码查询任务流编码
接口方法:getProcessCode(customCode)
请求参数:
customCode
# 3.13 通过自定义编码运行任务流
接口方法:startTaskSchedulingByCustomCode(jsonData)
请求参数:
json (dict)
示例 json:
{
"customCode"(str), # 自定义编码
"data"(array(dict)), # 数据列表
}
# 3.14 Minio 文件上传
接口方法:uploadFile**(filePath)**
请求参数:
Minio 文件上传。
参数:
filePath (str): 需要上传的文件路径,包括文件名和扩展名。例如 'E:/uploads/myfile.png'。
# 3.15 Minio 文件夹所有文件及子文件夹中文件上传(返回url带有目录地址)
接口方法:uploadFilesByPathByRecursion(path, base_dir)
请求参数:
上传目录下文件到指定目录minio(递归调用并根据递归目录设置返回url)
:param path: 自定义存储文件路径
:param filePaths: 需要上传的文件路径目录
# 3.16 Minio 当前文件夹所有文件上传(单个文件夹内所有文件(非递归))
接口方法:uploadFilesByPath(path, base_dir)
请求参数:
上传目录下文件到指定目录minio
:param path: 自定义存储文件路径
:param filePaths: 需要上传的文件路径目录
# 3.17 获取metaData(用于执行任务流,任务回调)
接口方法:getMetaData
请求参数:无
← API文档 Node.js SDK →