-
Notifications
You must be signed in to change notification settings - Fork 61
/
Copy pathkvs.py
191 lines (163 loc) · 5.61 KB
/
kvs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# -*- encoding:utf-8 -*-
from kscore.kvs import getKvsClient
import json
import time
#没有配置kscore.cfg调用方式
ks_access_key_id='xxxxx'
ks_secret_access_key='xxxxxx'
# 参数:服务service_name,大区region_name
client = getKvsClient("kvs", "cn-beijing-6",use_ssl=False,ks_access_key_id=ks_access_key_id,ks_secret_access_key=ks_secret_access_key)
#配置kscore.cfg调用方式
#client = getKvsClient("kvs", "cn-beijing-6",use_ssl=False)
#创建模板接口调用示例 : preset
presetname = 'xxxx'
description = 'just a demo'
presetType = 'avop'
#具体的格式请参考官网说明
param = {
"Preset": presetname,
"Description": description,
"PresetType": presetType,
"Param": {
"f": "mp4",
"AUDIO": {
"acodec": "aac"
},
"VIDEO": {
"vcodec": "h264"
}
}
}
#该接口需要输入json格式数据
res = client.Preset(param)
print json.dumps(res)
#更新模板接口调用示例 : UpdatePreset
#该接口需要输入json格式数据
res = client.UpdatePreset(param)
print json.dumps(res)
#获取模板列表接口调用示例 : GetPresetList
#参数
# WithDetail:是否查询模板详情,1-是 0-否
# PresetType:模板类型,多种模板类型以逗号隔开
# Presets:模板名称,多个模板名称以逗号隔开
res = client.GetPresetList(WithDetail=1,PresetType="xxxx")
print json.dumps(res)
#获取模板信息接口调用示例 : GetPresetDetail
# Preset:模板名称
res = client.GetPresetDetail(Preset=presetname)
print json.dumps(res)
#删除模板接口调用示例 : DelPreset
# Preset:模板名称
res = client.DelPreset(Preset=presetname)
print json.dumps(res)
#修改任务队列接口调用示例 : UpdatePipeline
# 该接口需要输入json格式数据
pipeinfo = {
"PipelineName": "usual",
"Description": "test pipeline",
"State": "Active",
"RegularStart": "01:00:00",
"RegularDuration":7200
}
res = client.UpdatePipeline(pipeinfo)
print json.dumps(res)
#查询任务队列接口调用示例 : QueryPipeline
# PipelineName:队列名称
res = client.QueryPipeline(PipelineName="usual")
print json.dumps(res)
#创建任务接口调用示例 : CreateTask
#具体参数请参考官方文档
task = {
"DstDir": "",
"DstObjectKey": "xxxx",
"DstBucket": "xxxx",
"DstAcl": "public-read",
"Preset": presetname,
"SrcInfo": [
{
"path": "/xxxxx/xxxxx",
"type": "video",
"index": 0
}
],
"CbMethod": "POST",
"CbUrl": "xxxxx"
}
#该接口需要输入json格式数据
res = client.CreateTask(task)
print json.dumps(res)
#该接口需要输入json格式数据
res = client.CreateFlowTask(task)
print json.dumps(res)
#查看任务状态接口调用示例 : GetTaskByTaskID
taskid = "xxxxxx"
# TaskID:任务ID
res = client.GetTaskByTaskID(TaskID = taskid)
print json.dumps(res)
#获取任务列表接口调用示例 : GetTaskList
#参数
# StartDate:开始时间,默认为当前月的第一天;格式:20160919
# EndDate:截止时间,默认为开始时间加30天;若大于当前时间,则默认为当前时间;格式:20160930
# Marker:请求起始游标,默认为0
# Limit:单次请求的记录数,默认为100,最大值为100
# StartTime:起始时间戳
# EndTime:结束时间戳
# 错误码:ErrorCode
# 任务状态:TaskStatus
res = client.GetTaskList(StartDate=20170100,EndDate=20170112,Marker=0,Limit=50)
print json.dumps(res)
#删除任务接口调用示例 : DelTaskByTaskID
# TaskID:任务ID
res = client.DelTaskByTaskID(TaskID = taskid)
print json.dumps(res)
#任务置顶接口调用示例 : TopTaskByTaskID
# TaskID:任务ID
res = client.TopTaskByTaskID(TaskID = taskid)
print json.dumps(res)
#查询任务META列表接口调用示例 : GetTaskMetaInfo
#参数
# TaskID:任务ID
# StartDate:开始时间,默认为当前月的第一天;格式:20160919
# EndDate:截止时间,默认为开始时间加30天;若大于当前时间,则默认为当前时间;格式:20160930
# Marker:请求起始游标,默认为0
# Limit:单次请求的记录数,默认为100,最大值为100
res = client.GetTaskMetaInfo(StartDate=20170100,EndDate=20170112,Marker=0,Limit=50)
print json.dumps(res)
#查询转码时长统计数据接口调用示例 : GetMediaTransDuration
#查询转码API调用次数统计数据接口调用示例 : GetInterfaceNumber
#查询转码截图统计数据接口调用示例 : GetScreenshotNumber
#参数
# StartUnixTime:查询起始时间戳秒数
# EndUnixTime:查询截止时间戳秒数
# Granularity:统计时间粒度
# ResultType:返回结果类型
start = "2017-06-16 00:00:00"
end = "2017-06-20 00:00:00"
t0 = time.strptime(start, "%Y-%m-%d %H:%M:%S")
t1 = time.strptime(end, "%Y-%m-%d %H:%M:%S")
StartUnixTime = int(time.mktime(t0))
EndUnixTime = int(time.mktime(t1))
Granularity = 5
ResultType = 1
res = client.GetMediaTransDuration(StartUnixTime, EndUnixTime, Granularity, ResultType)
print json.dumps(res)
res = client.GetInterfaceNumber(StartUnixTime, EndUnixTime, Granularity, ResultType)
print json.dumps(res)
res = client.GetScreenshotNumber(StartUnixTime, EndUnixTime, Granularity, ResultType)
print json.dumps(res)
#控制台专用
#发起媒体转码
res = client.FetchObjectMediaProcess(task)
print json.dumps(res)
#查询任务列表
res = client.ListFetchObjectMediaProcess(StartUnixTime=StartUnixTime,EndUnixTime=EndUnixTime)
print json.dumps(res)
#查询单个任务详情
res = client.GetFetchObjectMediaProcess(ProcessTaskId="12121212")
print json.dumps(res)
#同步获取视频源信息
task = {
"SrcPath":"/xxx/000bab6c0ade5f816eef4a2f44a2a6cd.mp4"
}
res = client.FetchMetaInfo(task)
print json.dumps(res)