Skip to content

Commit a1f6dce

Browse files
committedMar 6, 2025
Add features in bls,mcp,blb and bcc
1 parent 9125be3 commit a1f6dce

16 files changed

+479
-53
lines changed
 

‎Changelog

+9
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
发行说明:记录每次SDK更新的说明,最新版本的SDK包含以前所有版本的更新内容。
22
---------------------------------------------------------------------
3+
【版本:v0.9.218】
4+
涉及产品:BCC
5+
支持实例进入退出救援模式接口;支持实例加入,移出,替换安全组操作
6+
涉及产品:BLB
7+
修复应用型BLB企业安全组规则model中"priority"字段类型错误
8+
涉及产品:MCP
9+
补充图片数字水印接口,补充视频数字水印接口字段
10+
涉及产品:BLS
11+
日志查询接口支持设置采样率
312
【版本:v0.9.217】
413
涉及产品:BCC
514
创建实例支持CDS加密

‎services/appblb/model.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -814,7 +814,7 @@ type BlbEnterpriseSecurityGroupRuleModel struct {
814814
EnterpriseSecurityGroupRuleId string `json:"enterpriseSecurityGroupRuleId"`
815815
Direction string `json:"direction"`
816816
Action string `json:"action"`
817-
Priority string `json:"priority"`
817+
Priority int `json:"priority"`
818818
Remark string `json:"remark"`
819819
Ethertype string `json:"ethertype,omitempty"`
820820
PortRange string `json:"portRange,omitempty"`

‎services/bcc/api/instance.go

+145
Original file line numberDiff line numberDiff line change
@@ -2755,3 +2755,148 @@ func GetInstanceUserDataAttr(cli bce.Client, reqBody *bce.Body) (*InstanceUserDa
27552755

27562756
return jsonBody, nil
27572757
}
2758+
2759+
func EnterRescueMode(cli bce.Client, body *EnterRescueModeReq) (*EnterRescueModeResp, error) {
2760+
req := &bce.BceRequest{}
2761+
req.SetMethod(http.PUT)
2762+
req.SetUri(getEnterRescueModeUri())
2763+
2764+
jsonBytes, err := json.Marshal(body)
2765+
if err != nil {
2766+
return nil, err
2767+
}
2768+
jsonBody, err := bce.NewBodyFromBytes(jsonBytes)
2769+
if err != nil {
2770+
return nil, err
2771+
}
2772+
req.SetBody(jsonBody)
2773+
2774+
resp := &bce.BceResponse{}
2775+
if err := cli.SendRequest(req, resp); err != nil {
2776+
return nil, err
2777+
}
2778+
if resp.IsFail() {
2779+
return nil, resp.ServiceError()
2780+
}
2781+
res := &EnterRescueModeResp{}
2782+
if err := resp.ParseJsonBody(res); err != nil {
2783+
return nil, err
2784+
}
2785+
return res, nil
2786+
}
2787+
2788+
func ExitRescueMode(cli bce.Client, body *ExitRescueModeReq) (*ExitRescueModeResp, error) {
2789+
req := &bce.BceRequest{}
2790+
req.SetMethod(http.PUT)
2791+
req.SetUri(getExitRescueModeUri())
2792+
2793+
jsonBytes, err := json.Marshal(body)
2794+
if err != nil {
2795+
return nil, err
2796+
}
2797+
jsonBody, err := bce.NewBodyFromBytes(jsonBytes)
2798+
if err != nil {
2799+
return nil, err
2800+
}
2801+
req.SetBody(jsonBody)
2802+
2803+
resp := &bce.BceResponse{}
2804+
if err := cli.SendRequest(req, resp); err != nil {
2805+
return nil, err
2806+
}
2807+
if resp.IsFail() {
2808+
return nil, resp.ServiceError()
2809+
}
2810+
res := &ExitRescueModeResp{}
2811+
if err := resp.ParseJsonBody(res); err != nil {
2812+
return nil, err
2813+
}
2814+
return res, nil
2815+
}
2816+
2817+
func InstanceBindSecurityGroup(cli bce.Client, body *BindSgV2Req) (*BindSgV2Resp, error) {
2818+
req := &bce.BceRequest{}
2819+
req.SetMethod(http.PUT)
2820+
req.SetUri(getBindSecurityGroupUrl())
2821+
2822+
jsonBytes, err := json.Marshal(body)
2823+
if err != nil {
2824+
return nil, err
2825+
}
2826+
jsonBody, err := bce.NewBodyFromBytes(jsonBytes)
2827+
if err != nil {
2828+
return nil, err
2829+
}
2830+
req.SetBody(jsonBody)
2831+
2832+
resp := &bce.BceResponse{}
2833+
if err := cli.SendRequest(req, resp); err != nil {
2834+
return nil, err
2835+
}
2836+
if resp.IsFail() {
2837+
return nil, resp.ServiceError()
2838+
}
2839+
res := &BindSgV2Resp{}
2840+
if err := resp.ParseJsonBody(res); err != nil {
2841+
return nil, err
2842+
}
2843+
return res, nil
2844+
}
2845+
2846+
func InstanceUnbindSecurityGroup(cli bce.Client, body *UnbindSgV2Req) (*UnbindSgV2Resp, error) {
2847+
req := &bce.BceRequest{}
2848+
req.SetMethod(http.PUT)
2849+
req.SetUri(getUnbindSecurityGroupUrl())
2850+
2851+
jsonBytes, err := json.Marshal(body)
2852+
if err != nil {
2853+
return nil, err
2854+
}
2855+
jsonBody, err := bce.NewBodyFromBytes(jsonBytes)
2856+
if err != nil {
2857+
return nil, err
2858+
}
2859+
req.SetBody(jsonBody)
2860+
2861+
resp := &bce.BceResponse{}
2862+
if err := cli.SendRequest(req, resp); err != nil {
2863+
return nil, err
2864+
}
2865+
if resp.IsFail() {
2866+
return nil, resp.ServiceError()
2867+
}
2868+
res := &UnbindSgV2Resp{}
2869+
if err := resp.ParseJsonBody(res); err != nil {
2870+
return nil, err
2871+
}
2872+
return res, nil
2873+
}
2874+
2875+
func InstanceReplaceSecurityGroup(cli bce.Client, body *ReplaceSgV2Req) (*ReplaceSgV2Resp, error) {
2876+
req := &bce.BceRequest{}
2877+
req.SetMethod(http.PUT)
2878+
req.SetUri(getReplaceSecurityGroupUrl())
2879+
2880+
jsonBytes, err := json.Marshal(body)
2881+
if err != nil {
2882+
return nil, err
2883+
}
2884+
jsonBody, err := bce.NewBodyFromBytes(jsonBytes)
2885+
if err != nil {
2886+
return nil, err
2887+
}
2888+
req.SetBody(jsonBody)
2889+
2890+
resp := &bce.BceResponse{}
2891+
if err := cli.SendRequest(req, resp); err != nil {
2892+
return nil, err
2893+
}
2894+
if resp.IsFail() {
2895+
return nil, resp.ServiceError()
2896+
}
2897+
res := &ReplaceSgV2Resp{}
2898+
if err := resp.ParseJsonBody(res); err != nil {
2899+
return nil, err
2900+
}
2901+
return res, nil
2902+
}

‎services/bcc/api/model.go

+48
Original file line numberDiff line numberDiff line change
@@ -2807,3 +2807,51 @@ type ModifySnapshotAttributeArgs struct {
28072807
Desc string `json:"desc,omitempty"`
28082808
RetentionInDays int `json:"retentionInDays,omitempty"`
28092809
}
2810+
2811+
type EnterRescueModeReq struct {
2812+
InstanceId string `json:"instanceId"`
2813+
ForceStop bool `json:"forceStop"`
2814+
Password string `json:"password"`
2815+
}
2816+
2817+
type EnterRescueModeResp struct {
2818+
RequestId *string `json:"requestId"`
2819+
}
2820+
2821+
type ExitRescueModeReq struct {
2822+
InstanceId string `json:"instanceId"`
2823+
}
2824+
2825+
type ExitRescueModeResp struct {
2826+
RequestId *string `json:"requestId"`
2827+
}
2828+
2829+
type BindSgV2Req struct {
2830+
InstanceIds []string `json:"instanceIds"`
2831+
SecurityGroupIds []string `json:"securityGroupIds"`
2832+
SecurityGroupType string `json:"securityGroupType"`
2833+
}
2834+
2835+
type BindSgV2Resp struct {
2836+
RequestId *string `json:"requestId"`
2837+
}
2838+
2839+
type UnbindSgV2Req struct {
2840+
InstanceIds []string `json:"instanceIds"`
2841+
SecurityGroupIds []string `json:"securityGroupIds"`
2842+
SecurityGroupType string `json:"securityGroupType"`
2843+
}
2844+
2845+
type UnbindSgV2Resp struct {
2846+
RequestId *string `json:"requestId"`
2847+
}
2848+
2849+
type ReplaceSgV2Req struct {
2850+
InstanceIds []string `json:"instanceIds"`
2851+
SecurityGroupIds []string `json:"securityGroupIds"`
2852+
SecurityGroupType string `json:"securityGroupType"`
2853+
}
2854+
2855+
type ReplaceSgV2Resp struct {
2856+
RequestId *string `json:"requestId"`
2857+
}

‎services/bcc/api/util.go

+31-6
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,17 @@ const (
9898
REQUEST_RELATED_DELETE_POLICY = "/modifyRelatedDeletePolicy"
9999
REQUEST_VOLUME_PRICE_URI = "/volume/getPrice"
100100

101-
REQUEST_DESCRIBE_REGIONS_URI = "/describeRegions"
102-
REQUEST_EHC_CLUSTER_CREATE_URI = "/ehc/cluster/create"
103-
REQUEST_EHC_CLUSTER_LIST_URI = "/ehc/cluster/list"
104-
REQUEST_EHC_CLUSTER_MODIFY_URI = "/ehc/cluster/modify"
105-
REQUEST_EHC_CLUSTER_DELETE_URI = "/ehc/cluster/delete"
106-
REQUEST_INSTANCE_USER_DATA_URI = "/attribute/getUserdata"
101+
REQUEST_DESCRIBE_REGIONS_URI = "/describeRegions"
102+
REQUEST_EHC_CLUSTER_CREATE_URI = "/ehc/cluster/create"
103+
REQUEST_EHC_CLUSTER_LIST_URI = "/ehc/cluster/list"
104+
REQUEST_EHC_CLUSTER_MODIFY_URI = "/ehc/cluster/modify"
105+
REQUEST_EHC_CLUSTER_DELETE_URI = "/ehc/cluster/delete"
106+
REQUEST_INSTANCE_USER_DATA_URI = "/attribute/getUserdata"
107+
REQUEST_ENTER_RESCUE_MODE_URI = "/rescue/mode/enter"
108+
REQUEST_EXIT_RESCUE_MODE_URI = "/rescue/mode/exit"
109+
REQUEST_BIND_SECURITY_GROUP__URI = "/securitygroup/bind"
110+
REQUEST_UNBIND_SECURITY_GROUP__URI = "/securitygroup/unbind"
111+
REQUEST_REPLACE_SECURITY_GROUP_URI = "/securitygroup/replace"
107112
)
108113

109114
func getInstanceUri() string {
@@ -570,3 +575,23 @@ func getEhcClusterDeleteUri() string {
570575
func getInstanceUserDataUri() string {
571576
return URI_PREFIXV2 + REQUEST_INSTANCE_URI + REQUEST_INSTANCE_USER_DATA_URI
572577
}
578+
579+
func getEnterRescueModeUri() string {
580+
return URI_PREFIXV2 + REQUEST_INSTANCE_URI + REQUEST_ENTER_RESCUE_MODE_URI
581+
}
582+
583+
func getExitRescueModeUri() string {
584+
return URI_PREFIXV2 + REQUEST_INSTANCE_URI + REQUEST_EXIT_RESCUE_MODE_URI
585+
}
586+
587+
func getBindSecurityGroupUrl() string {
588+
return URI_PREFIXV2 + REQUEST_BIND_SECURITY_GROUP__URI
589+
}
590+
591+
func getUnbindSecurityGroupUrl() string {
592+
return URI_PREFIXV2 + REQUEST_UNBIND_SECURITY_GROUP__URI
593+
}
594+
595+
func getReplaceSecurityGroupUrl() string {
596+
return URI_PREFIXV2 + REQUEST_REPLACE_SECURITY_GROUP_URI
597+
}

‎services/bcc/client.go

+22
Original file line numberDiff line numberDiff line change
@@ -2697,3 +2697,25 @@ func (c *Client) GetSecurityGroupDetail(securityGroupId string) (*api.GetSecurit
26972697
func (c *Client) ModifySnapshotAttribute(snapshotId string, args *api.ModifySnapshotAttributeArgs) error {
26982698
return api.ModifySnapshotAttribute(c, snapshotId, args)
26992699
}
2700+
2701+
func (c *Client) EnterRescueMode(body *api.EnterRescueModeReq) (
2702+
*api.EnterRescueModeResp, error) {
2703+
return api.EnterRescueMode(c, body)
2704+
}
2705+
2706+
func (c *Client) ExitRescueMode(body *api.ExitRescueModeReq) (
2707+
*api.ExitRescueModeResp, error) {
2708+
return api.ExitRescueMode(c, body)
2709+
}
2710+
2711+
func (c *Client) InstanceBindSecurityGroup(body *api.BindSgV2Req) (*api.BindSgV2Resp, error) {
2712+
return api.InstanceBindSecurityGroup(c, body)
2713+
}
2714+
2715+
func (c *Client) InstanceUnbindSecurityGroup(body *api.UnbindSgV2Req) (*api.UnbindSgV2Resp, error) {
2716+
return api.InstanceUnbindSecurityGroup(c, body)
2717+
}
2718+
2719+
func (c *Client) InstanceReplaceSecurityGroup(body *api.ReplaceSgV2Req) (*api.ReplaceSgV2Resp, error) {
2720+
return api.InstanceReplaceSecurityGroup(c, body)
2721+
}

‎services/bcc/client_test.go

+65
Original file line numberDiff line numberDiff line change
@@ -2323,3 +2323,68 @@ func TestModifySnapshotAttribute(t *testing.T) {
23232323
err := BCC_CLIENT.ModifySnapshotAttribute("s-Dzmlx7Fz", args)
23242324
ExpectEqual(t.Errorf, err, nil)
23252325
}
2326+
2327+
func TestEnterRescueMode(t *testing.T) {
2328+
args := &api.EnterRescueModeReq{
2329+
InstanceId: "i-Qh2eC8fJ",
2330+
ForceStop: true,
2331+
Password: "******",
2332+
}
2333+
res, err := BCC_CLIENT.EnterRescueMode(args)
2334+
ExpectEqual(t.Errorf, err, nil)
2335+
fmt.Println(res)
2336+
}
2337+
2338+
func TestExitRescueMode(t *testing.T) {
2339+
args := &api.ExitRescueModeReq{
2340+
InstanceId: "i-Qh2eC8fJ",
2341+
}
2342+
res, err := BCC_CLIENT.ExitRescueMode(args)
2343+
ExpectEqual(t.Errorf, err, nil)
2344+
fmt.Println(res)
2345+
}
2346+
2347+
func TestInstanceBindSecurityGroup(t *testing.T) {
2348+
args := &api.BindSgV2Req{
2349+
InstanceIds: []string{
2350+
"i-LO8XGmwh",
2351+
},
2352+
SecurityGroupIds: []string{
2353+
"esg-ub0q1p72pbmh",
2354+
},
2355+
SecurityGroupType: "enterprise",
2356+
}
2357+
res, err := BCC_CLIENT.InstanceBindSecurityGroup(args)
2358+
ExpectEqual(t.Errorf, err, nil)
2359+
fmt.Println(res)
2360+
}
2361+
2362+
func TestInstanceUnbindSecurityGroup(t *testing.T) {
2363+
args := &api.UnbindSgV2Req{
2364+
InstanceIds: []string{
2365+
"i-LO8XGmwh",
2366+
},
2367+
SecurityGroupIds: []string{
2368+
"esg-ub0q1p72pbmh",
2369+
},
2370+
SecurityGroupType: "enterprise",
2371+
}
2372+
res, err := BCC_CLIENT.InstanceUnbindSecurityGroup(args)
2373+
ExpectEqual(t.Errorf, err, nil)
2374+
fmt.Println(res)
2375+
}
2376+
2377+
func TestInstanceReplaceSecurityGroup(t *testing.T) {
2378+
args := &api.ReplaceSgV2Req{
2379+
InstanceIds: []string{
2380+
"i-LO8XGmwh",
2381+
},
2382+
SecurityGroupIds: []string{
2383+
"esg-ub0q1p72pbmh",
2384+
},
2385+
SecurityGroupType: "enterprise",
2386+
}
2387+
res, err := BCC_CLIENT.InstanceReplaceSecurityGroup(args)
2388+
ExpectEqual(t.Errorf, err, nil)
2389+
fmt.Println(res)
2390+
}

‎services/bls/api/logrecord.go

+6
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,12 @@ func QueryLogRecord(cli bce.Client, project string, logStore string, args *Query
127127
if len(args.Marker) > 0 {
128128
req.SetParam("marker", args.Marker)
129129
}
130+
if args.SamplePercentage > 0 {
131+
req.SetParam("samplePercentage", strconv.FormatFloat(args.SamplePercentage, 'f', -1, 64))
132+
}
133+
if args.SampleSeed > 0 {
134+
req.SetParam("sampleSeed", strconv.Itoa(args.SampleSeed))
135+
}
130136
}
131137
resp := &bce.BceResponse{}
132138
if err := cli.SendRequest(req, resp); err != nil {

‎services/bls/api/model.go

+9-7
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,15 @@ type PushLogRecordBody struct {
102102
}
103103

104104
type QueryLogRecordArgs struct {
105-
LogStreamName string `json:"logStreamName"`
106-
Query string `json:"query"`
107-
StartDateTime DateTime `json:"startDatetime"`
108-
EndDateTime DateTime `json:"endDateTime"`
109-
Limit int `json:"limit"`
110-
Marker string `json:"marker"`
111-
Sort string `json:"sort"`
105+
LogStreamName string `json:"logStreamName"`
106+
Query string `json:"query"`
107+
StartDateTime DateTime `json:"startDatetime"`
108+
EndDateTime DateTime `json:"endDateTime"`
109+
Limit int `json:"limit"`
110+
Marker string `json:"marker"`
111+
Sort string `json:"sort"`
112+
SamplePercentage float64 `json:"samplePercentage"`
113+
SampleSeed int `json:"sampleSeed"`
112114
}
113115

114116
type PullLogRecordArgs struct {

‎services/bls/client_v2.go

+9-7
Original file line numberDiff line numberDiff line change
@@ -141,13 +141,15 @@ func (c *Client) PullLogRecordV2(request PullLogRecordRequest) (*api.PullLogReco
141141

142142
func (c *Client) QueryLogRecordV2(request QueryLogRecordRequest) (*api.QueryLogResult, error) {
143143
args := &api.QueryLogRecordArgs{
144-
LogStreamName: request.LogStreamName,
145-
Query: request.Query,
146-
StartDateTime: api.DateTime(request.StartDateTime),
147-
EndDateTime: api.DateTime(request.EndDateTime),
148-
Limit: request.Limit,
149-
Marker: request.Marker,
150-
Sort: request.Sort,
144+
LogStreamName: request.LogStreamName,
145+
Query: request.Query,
146+
StartDateTime: api.DateTime(request.StartDateTime),
147+
EndDateTime: api.DateTime(request.EndDateTime),
148+
Limit: request.Limit,
149+
Marker: request.Marker,
150+
Sort: request.Sort,
151+
SamplePercentage: request.SamplePercentage,
152+
SampleSeed: request.SampleSeed,
151153
}
152154
return api.QueryLogRecord(c, request.Project, request.LogStoreName, args)
153155
}

‎services/bls/client_v2_test.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,10 @@ func TestRecordAndStreamV2(t *testing.T) {
377377
qr, err := BLS_CLIENT.QueryLogRecordV2(queryLogRecordRequest)
378378
ExpectEqual(t.Errorf, err, nil)
379379
ExpectEqual(t.Errorf, 1, len(qr.ResultSet.Rows))
380-
380+
queryLogRecordRequest.SamplePercentage = 50.0
381+
queryLogRecordRequest.SampleSeed = 14
382+
qr, err = BLS_CLIENT.QueryLogRecordV2(queryLogRecordRequest)
383+
ExpectEqual(t.Errorf, err, nil)
381384
deleteLogStoreRequest := DeleteLogStoreRequest{
382385
Project: createLogStoreRequest.Project,
383386
LogStoreName: createLogStoreRequest.LogStoreName,

‎services/bls/model.go

+4
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,10 @@ type QueryLogRecordRequest struct {
165165
Marker string `json:"marker"`
166166
// 排序字段,默认desc,按照时间倒序排序;asc,按照时间顺序排序
167167
Sort string `json:"sort"`
168+
// 检索时的采样百分比,选填,范围为1-100。注:该参数只对检索结果生效
169+
SamplePercentage float64 `json:"samplePercentage"`
170+
// 检索采样时的seed,相同seed多次查询产生相同的随机结果。注:该参数只对检索结果生效
171+
SampleSeed int `json:"sampleSeed"`
168172
}
169173

170174
type CreateFastQueryRequest struct {

‎services/media/api/imagedwm.go

+48
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,51 @@ func GetImagedwmResult(cli bce.Client, jobId string) (*GetImagedwmResponse, erro
5353
}
5454
return jsonBody, nil
5555
}
56+
57+
func CreateImagedwmDetectJob(cli bce.Client, digitalWm *Imagedwm) (*CreateJobResponse, error) {
58+
req := &bce.BceRequest{}
59+
req.SetUri(getImagedwmUrl())
60+
req.SetMethod(http.POST)
61+
req.SetHeader(http.CONTENT_TYPE, bce.DEFAULT_CONTENT_TYPE)
62+
jsonBytes, err := json.Marshal(digitalWm)
63+
if err != nil {
64+
return nil, err
65+
}
66+
body, err := bce.NewBodyFromBytes(jsonBytes)
67+
if err != nil {
68+
return nil, err
69+
}
70+
req.SetBody(body)
71+
resp := &bce.BceResponse{}
72+
if err := cli.SendRequest(req, resp); err != nil {
73+
return nil, err
74+
}
75+
if resp.IsFail() {
76+
return nil, resp.ServiceError()
77+
}
78+
result := &CreateJobResponse{}
79+
if err := resp.ParseJsonBody(result); err != nil {
80+
return nil, err
81+
}
82+
defer func() { resp.Body().Close() }()
83+
return result, nil
84+
}
85+
86+
func GetImagedwmDetectResult(cli bce.Client, jobId string) (*GetImagedwmResponse, error) {
87+
req := &bce.BceRequest{}
88+
req.SetUri(getImagedwmUrl() + "/" + jobId)
89+
req.SetMethod(http.GET)
90+
resp := &bce.BceResponse{}
91+
92+
if err := cli.SendRequest(req, resp); err != nil {
93+
return nil, err
94+
}
95+
if resp.IsFail() {
96+
return nil, resp.ServiceError()
97+
}
98+
jsonBody := &GetImagedwmResponse{}
99+
if err := resp.ParseJsonBody(jsonBody); err != nil {
100+
return nil, err
101+
}
102+
return jsonBody, nil
103+
}

‎services/media/api/model.go

+46-25
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,12 @@ type Target struct {
8585
Crop *Area `json:"crop,omitempty"`
8686
WatermarkIds []string `json:"watermarkIds,omitempty"`
8787
Inserts *[]Insert `json:"inserts,omitempty"`
88-
DigitalWmSecretKeyId string `json:"digitalWmSecretKeyId,omitempty"`
8988
DigitalWmTextContent string `json:"digitalWmTextContent,omitempty"`
89+
DigitalWmImageBucket string `json:"digitalWmImageBucket,omitempty"`
90+
DigitalWmImageKey string `json:"digitalWmImageKey,omitempty"`
91+
DigitalWmSecretKeyId string `json:"digitalWmSecretKeyId,omitempty"`
92+
DigitalWmAlgVersion int `json:"digitalWmAlgVersion,omitempty"`
93+
DigitalWmStrength float64 `json:"digitalWmStrength,omitempty"`
9094
JobCfg *JobCfg `json:"jobCfg,omitempty"`
9195
}
9296

@@ -169,22 +173,24 @@ type ListPresetsResponse struct {
169173
}
170174

171175
type Preset struct {
172-
PresetName string `json:"presetName,omitempty"`
173-
Description string `json:"description,omitempty"`
174-
Container string `json:"container,omitempty"`
175-
Transmux bool `json:"transmux,omitempty"`
176-
Clip *Clip `json:"clip,omitempty"`
177-
Audio *Audio `json:"audio,omitempty"`
178-
Video *Video `json:"video,omitempty"`
179-
Encryption *Encryption `json:"encryption,omitempty"`
180-
WatermarkID string `json:"watermarkId,omitempty"`
181-
Watermarks *Watermarks `json:"watermarks,omitempty"`
182-
TransCfg *TransCfg `json:"transCfg,omitempty"`
183-
ExtraCfg *ExtraCfg `json:"extraCfg,omitempty"`
184-
State string `json:"state,omitempty"`
185-
CreatedTime string `json:"createdTime,omitempty"`
186-
DigitalWmId string `json:"digitalWmId,omitempty"`
187-
DigitalWmSecretKey string `json:"digitalWmSecretKey,omitempty"`
176+
PresetName string `json:"presetName,omitempty"`
177+
Description string `json:"description,omitempty"`
178+
Container string `json:"container,omitempty"`
179+
Transmux bool `json:"transmux,omitempty"`
180+
Clip *Clip `json:"clip,omitempty"`
181+
Audio *Audio `json:"audio,omitempty"`
182+
Video *Video `json:"video,omitempty"`
183+
Encryption *Encryption `json:"encryption,omitempty"`
184+
WatermarkID string `json:"watermarkId,omitempty"`
185+
Watermarks *Watermarks `json:"watermarks,omitempty"`
186+
TransCfg *TransCfg `json:"transCfg,omitempty"`
187+
ExtraCfg *ExtraCfg `json:"extraCfg,omitempty"`
188+
State string `json:"state,omitempty"`
189+
CreatedTime string `json:"createdTime,omitempty"`
190+
DigitalWmId string `json:"digitalWmId,omitempty"`
191+
DigitalWmSecretKey string `json:"digitalWmSecretKey,omitempty"`
192+
DigitalWmAlgVersion int `json:"digitalWmAlgVersion,omitempty"`
193+
DigitalWmStrength float64 `json:"digitalWmStrength,omitempty"`
188194
}
189195

190196
type Clip struct {
@@ -516,6 +522,7 @@ type Dwmdetect struct {
516522
PipelineName string `json:"pipelineName,omitempty"`
517523
Source *DwmSource `json:"source,omitempty"`
518524
Target *DwmTarget `json:"target,omitempty"`
525+
DigitalWmAlgVersion int `json:"digitalWmAlgVersion,omitempty"`
519526
DigitalWmType string `json:"digitalWmType,omitempty"`
520527
DigitalWmSecretKeyId string `json:"digitalWmSecretKeyId,omitempty"`
521528
DigitalWmId string `json:"digitalWmId,omitempty"`
@@ -532,6 +539,8 @@ type DwmSource struct {
532539
type DwmTarget struct {
533540
Bucket string `json:"bucket,omitempty"`
534541
Key string `json:"key,omitempty"`
542+
Format string `json:"format,omitempty"`
543+
Quality int `json:"quality,omitempty"`
535544
Keys []string `json:"keys,omitempty"`
536545
KeyPrefix string `json:"keyPrefix,omitempty"`
537546
}
@@ -551,16 +560,18 @@ type GetDwmdetectResponse struct {
551560
DetectFramesNum int `json:"detectFramesNum,omitempty"`
552561
DetectedTexts []string `json:"detectedTexts,omitempty"`
553562
DetectSuccessNum int `json:"detectSuccessNum,omitempty"`
563+
Error Error `json:"error,omitempty"`
554564
}
555565

556566
type Imagedwm struct {
557567
PipelineName string `json:"pipelineName,omitempty"`
558568
Source *DwmSource `json:"source,omitempty"`
559569
Target *DwmTarget `json:"target,omitempty"`
560-
TaskType string `json:"taskType,omitempty"`
561-
Strength float64 `json:"strength,omitempty"`
562570
DigitalWm *DigitalWm `json:"digitalWm,omitempty"`
563-
AlgorithmVersion int `json:"algorithmVersion,omitempty"`
571+
TaskType string `json:"taskType,omitempty"`
572+
AlgorithmVersion *int `json:"algorithmVersion,omitempty"`
573+
Strength *float64 `json:"strength,omitempty"`
574+
SecretKey string `json:"secretKey,omitempty"`
564575
}
565576

566577
type DigitalWm struct {
@@ -570,14 +581,24 @@ type DigitalWm struct {
570581
TextContent string `json:"textContent,omitempty"`
571582
}
572583

584+
type Output struct {
585+
ImageBucket string `json:"imageBucket,omitempty"`
586+
ImageKey string `json:"imageKey,omitempty"`
587+
ExtractedText string `json:"extractedText,omitempty"`
588+
}
589+
573590
type GetImagedwmResponse struct {
574591
JobId string `json:"jobId,omitempty"`
575592
Imagedwm
576-
JobStatus string `json:"jobStatus,omitempty"`
577-
CreateTime string `json:"createTime,omitempty"`
578-
StartTime string `json:"startTime,omitempty"`
579-
EndTime string `json:"endTime,omitempty"`
580-
Error JobError `json:"error,omitempty"`
593+
JobStatus string `json:"jobStatus,omitempty"`
594+
CreateTime string `json:"createTime,omitempty"`
595+
StartTime string `json:"startTime,omitempty"`
596+
EndTime string `json:"endTime,omitempty"`
597+
Error JobError `json:"error,omitempty"`
598+
TaskType string `json:"taskType,omitempty"`
599+
AlgorithmVersion int `json:"algorithmVersion,omitempty"`
600+
Strength float64 `json:"strength,omitempty"`
601+
Output Output `json:"output,omitempty"`
581602
}
582603

583604
type JobError struct {

‎services/media/client.go

+12-2
Original file line numberDiff line numberDiff line change
@@ -294,12 +294,22 @@ func (cli *Client) GetDwmdetectResult(jobId string) (*api.GetDwmdetectResponse,
294294
return api.GetDwmdetectResult(cli, jobId)
295295
}
296296

297-
// create image digitalwatermark job or image digitalwatermark detect job
297+
// create image digitalwatermark
298298
func (cli *Client) CreateImagedwmJob(digitalWm *api.Imagedwm) (*api.CreateJobResponse, error) {
299299
return api.CreateImagedwmJob(cli, digitalWm)
300300
}
301301

302-
// get digitalwatermark job result or image digitalwatermark detect job result
302+
// get digitalwatermark job result
303303
func (cli *Client) GetImagedwmResult(jobId string) (*api.GetImagedwmResponse, error) {
304304
return api.GetImagedwmResult(cli, jobId)
305305
}
306+
307+
// create image digitalwatermark detect job
308+
func (cli *Client) CreateImagedwmDetectJob(digitalWm *api.Imagedwm) (*api.CreateJobResponse, error) {
309+
return api.CreateImagedwmDetectJob(cli, digitalWm)
310+
}
311+
312+
// get image digitalwatermark detect job result
313+
func (cli *Client) GetImagedwmDetectResult(jobId string) (*api.GetImagedwmResponse, error) {
314+
return api.GetImagedwmDetectResult(cli, jobId)
315+
}

‎services/media/client_test.go

+20-4
Original file line numberDiff line numberDiff line change
@@ -967,12 +967,16 @@ func TestCreateImagedwmJobT(t *testing.T) {
967967
target := &api.DwmTarget{}
968968
target.Bucket = "go-test"
969969
target.Key = "jbs-dwm.jpeg"
970+
target.Quality = 90
970971
imagedwm.Target = target
971972
imagedwm.TaskType = "embed"
972-
imagedwm.Strength = 0.7
973+
strength := 0.7
974+
imagedwm.Strength = &strength
973975
digitalWm := &api.DigitalWm{}
974976
digitalWm.TextContent = "baidu"
975977
imagedwm.DigitalWm = digitalWm
978+
algorithmVersion := 1
979+
imagedwm.AlgorithmVersion = &algorithmVersion
976980

977981
response, err := MEDIA_CLIENT.CreateImagedwmJob(imagedwm)
978982
ExpectEqual(t.Errorf, err, nil)
@@ -991,7 +995,10 @@ func TestCreateImagedwmJobI(t *testing.T) {
991995
target.Key = "demo-dwm-i.png"
992996
imagedwm.Target = target
993997
imagedwm.TaskType = "embed"
994-
imagedwm.Strength = 0.7
998+
strength := 0.8
999+
imagedwm.Strength = &strength
1000+
algorithmVersion := 0
1001+
imagedwm.AlgorithmVersion = &algorithmVersion
9951002
digitalWm := &api.DigitalWm{}
9961003
digitalWm.ImageBucket = "go-test"
9971004
digitalWm.ImageKey = "logo.png"
@@ -1004,7 +1011,7 @@ func TestCreateImagedwmJobI(t *testing.T) {
10041011
}
10051012

10061013
func TestGetImagedwmResult(t *testing.T) {
1007-
response, err := MEDIA_CLIENT.GetImagedwmResult("job-qbnrkj2fhczyh1gc")
1014+
response, err := MEDIA_CLIENT.GetImagedwmResult("job-rc2v7i5y6pinc58h")
10081015
ExpectEqual(t.Errorf, err, nil)
10091016
t.Logf("%+v", response)
10101017
t.Logf("%+v", response.Source)
@@ -1021,10 +1028,19 @@ func TestCreateImagedwmDetectJob(t *testing.T) {
10211028
target := &api.DwmTarget{}
10221029
target.Bucket = "go-test"
10231030
target.Key = "demo-dwm-i-di.png"
1031+
target.Quality = 80
10241032
imagedwm.Target = target
10251033
imagedwm.TaskType = "extract"
10261034

1027-
response, err := MEDIA_CLIENT.CreateImagedwmJob(imagedwm)
1035+
response, err := MEDIA_CLIENT.CreateImagedwmDetectJob(imagedwm)
10281036
ExpectEqual(t.Errorf, err, nil)
10291037
t.Logf("%+v", response)
10301038
}
1039+
1040+
func TestGetImagedwmDetectResult(t *testing.T) {
1041+
response, err := MEDIA_CLIENT.GetImagedwmDetectResult("job-rc2uz90cxrk3zxer")
1042+
ExpectEqual(t.Errorf, err, nil)
1043+
t.Logf("response:%v", response)
1044+
t.Logf("%+v", response.Source)
1045+
t.Logf("%+v", response.Target)
1046+
}

0 commit comments

Comments
 (0)
Please sign in to comment.