Merge branch 'dev' of http://gitlab.fjmaimaimai.com/mmm-go/openapi into dev
正在显示
25 个修改的文件
包含
357 行增加
和
133 行删除
| @@ -3,6 +3,7 @@ FROM 192.168.0.243:5000/mmm/mmmopp:20200422 as builder | @@ -3,6 +3,7 @@ FROM 192.168.0.243:5000/mmm/mmmopp:20200422 as builder | ||
| 3 | ENV GOPROXY https://goproxy.cn | 3 | ENV GOPROXY https://goproxy.cn |
| 4 | ENV GO111MODULE on | 4 | ENV GO111MODULE on |
| 5 | ENV GOPATH /go | 5 | ENV GOPATH /go |
| 6 | +#RUN git clone http://gitlab.fjmaimaimai.com/mmm-go/gocomm.git /go/src/gocomm | ||
| 6 | RUN cd /go/src/gocomm \ | 7 | RUN cd /go/src/gocomm \ |
| 7 | && git pull | 8 | && git pull |
| 8 | WORKDIR /go/src/openapi | 9 | WORKDIR /go/src/openapi |
| @@ -10,7 +11,7 @@ WORKDIR /go/src/openapi | @@ -10,7 +11,7 @@ WORKDIR /go/src/openapi | ||
| 10 | COPY go.mod . | 11 | COPY go.mod . |
| 11 | 12 | ||
| 12 | COPY . . | 13 | COPY . . |
| 13 | -RUN GOOS=linux CGO_ENABLED=0 go build -ldflags="-s -w" -o opp main.go | 14 | +RUN GOOS=linux CGO_ENABLED=0 go build -ldflags="-s -w" -o openapi main.go |
| 14 | 15 | ||
| 15 | #FROM alpine:latest | 16 | #FROM alpine:latest |
| 16 | FROM 192.168.0.243:5000/mmm/mmmopp:20200110 | 17 | FROM 192.168.0.243:5000/mmm/mmmopp:20200110 |
| 1 | [dev-online] | 1 | [dev-online] |
| 2 | -#Ali could | ||
| 3 | -AccessKeyID ="LTAI4FhiZ3UktC6N1u3H5GFC" | ||
| 4 | -AccessKeySecret ="UyspWwdni55CYQ02hUCint4qY2jNYO" | ||
| 5 | - | ||
| 6 | #日志 | 2 | #日志 |
| 7 | log_level = "${LOG_LEVEL||debug}" | 3 | log_level = "${LOG_LEVEL||debug}" |
| 8 | aliyun_logs_access ="${aliyun_logs_access||F:/log/app.log}" | 4 | aliyun_logs_access ="${aliyun_logs_access||F:/log/app.log}" |
| 9 | 5 | ||
| 6 | +#Ali could | ||
| 7 | +AccessKeyID ="LTAI4Fz1LUBW2fXp6QWaJHRS" | ||
| 8 | +AccessKeySecret ="aLZXwK8pgrs10Ws03qcN7NsrSXFVsg" | ||
| 9 | + | ||
| 10 | #阿里云 | 10 | #阿里云 |
| 11 | -cname ="https://media.goexample.live/" | 11 | +#cname ="https://media.goexample.live/" |
| 12 | +cname ="https://media.fjmaimaimai.com/" | ||
| 12 | 13 |
| 1 | [dev] | 1 | [dev] |
| 2 | #Ali could | 2 | #Ali could |
| 3 | -AccessKeyID ="LTAI4FhiZ3UktC6N1u3H5GFC" | ||
| 4 | -AccessKeySecret ="UyspWwdni55CYQ02hUCint4qY2jNYO" | 3 | +#AccessKeyID ="LTAI4FhiZ3UktC6N1u3H5GFC" |
| 4 | +#AccessKeySecret ="UyspWwdni55CYQ02hUCint4qY2jNYO" | ||
| 5 | +AccessKeyID ="LTAI4Fz1LUBW2fXp6QWaJHRS" | ||
| 6 | +AccessKeySecret ="aLZXwK8pgrs10Ws03qcN7NsrSXFVsg" | ||
| 5 | 7 | ||
| 6 | #日志 | 8 | #日志 |
| 7 | log_level = "${LOG_LEVEL||debug}" | 9 | log_level = "${LOG_LEVEL||debug}" |
| 8 | aliyun_logs_access ="${aliyun_logs_access||F:/log/app.log}" | 10 | aliyun_logs_access ="${aliyun_logs_access||F:/log/app.log}" |
| 9 | 11 | ||
| 10 | -#阿里云 | ||
| 11 | -cname ="https://media.goexample.live/" | 12 | +#阿里云 https://media.goexample.live/ |
| 13 | +cname ="https://media.fjmaimaimai.com/" |
| 1 | [prod] | 1 | [prod] |
| 2 | +#日志 | ||
| 3 | +log_level = "${LOG_LEVEL||debug}" | ||
| 4 | +aliyun_logs_access ="${aliyun_logs_access||F:/log/app.log}" | ||
| 5 | + | ||
| 2 | #Ali could | 6 | #Ali could |
| 3 | -AccessKeyID ="LTAI4FhiZ3UktC6N1u3H5GFC" | ||
| 4 | -AccessKeySecret ="UyspWwdni55CYQ02hUCint4qY2jNYO" | ||
| 7 | +AccessKeyID ="LTAI4Fz1LUBW2fXp6QWaJHRS" | ||
| 8 | +AccessKeySecret ="aLZXwK8pgrs10Ws03qcN7NsrSXFVsg" | ||
| 9 | + | ||
| 10 | +#阿里云 | ||
| 11 | +cname ="https://media.fjmaimaimai.com/" |
| 1 | [test] | 1 | [test] |
| 2 | +#日志 | ||
| 3 | +log_level = "${LOG_LEVEL||debug}" | ||
| 4 | +aliyun_logs_access ="${aliyun_logs_access||F:/log/app.log}" | ||
| 5 | + | ||
| 2 | #Ali could | 6 | #Ali could |
| 3 | -AccessKeyID ="LTAI4FhiZ3UktC6N1u3H5GFC" | ||
| 4 | -AccessKeySecret ="UyspWwdni55CYQ02hUCint4qY2jNYO" | ||
| 7 | +AccessKeyID ="LTAI4Fz1LUBW2fXp6QWaJHRS" | ||
| 8 | +AccessKeySecret ="aLZXwK8pgrs10Ws03qcN7NsrSXFVsg" | ||
| 9 | + | ||
| 10 | +#阿里云 | ||
| 11 | +cname ="https://media.fjmaimaimai.com/" |
| @@ -118,7 +118,7 @@ var AllowOption = func(ctx *context.Context) { | @@ -118,7 +118,7 @@ var AllowOption = func(ctx *context.Context) { | ||
| 118 | f := cors.Allow(&cors.Options{ | 118 | f := cors.Allow(&cors.Options{ |
| 119 | AllowMethods: []string{"POST", "GET", "OPTIONS", "PUT", "DELETE"}, //允许的请求类型 | 119 | AllowMethods: []string{"POST", "GET", "OPTIONS", "PUT", "DELETE"}, //允许的请求类型 |
| 120 | AllowHeaders: []string{"Origin", "Accept", "Content-Type", "Authorization", | 120 | AllowHeaders: []string{"Origin", "Accept", "Content-Type", "Authorization", |
| 121 | - "x-mmm-cid", "x-mmm-uid", "x-mmm-accesstoken", "x-mmm-refreshtoken", "x-requested-with"}, //允许的头部信息 | 121 | + "x-mmm-cid", "x-mmm-uid", "x-mmm-accesstoken", "x-mmm-refreshtoken", "x-requested-with", "x-mmm-appproject", "x-mmm-devicetype"}, //允许的头部信息 |
| 122 | ExposeHeaders: []string{"Content-Length"}, //允许暴露的头信息 | 122 | ExposeHeaders: []string{"Content-Length"}, //允许暴露的头信息 |
| 123 | AllowCredentials: false, //不允许共享AuthTuffic证书 | 123 | AllowCredentials: false, //不允许共享AuthTuffic证书 |
| 124 | AllowAllOrigins: true, //允许的请求来源 | 124 | AllowAllOrigins: true, //允许的请求来源 |
| @@ -37,6 +37,43 @@ func (this *VodController) CreateUploadVideo() { | @@ -37,6 +37,43 @@ func (this *VodController) CreateUploadVideo() { | ||
| 37 | msg = protocol.NewReturnResponse(vod.CreateUploadVideo(header, request)) | 37 | msg = protocol.NewReturnResponse(vod.CreateUploadVideo(header, request)) |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | +//创建视频上传凭证(多个) CreateUploadVideos | ||
| 41 | +// @router /createUploadVideos [post] | ||
| 42 | +func (this *VodController) CreateUploadVideos() { | ||
| 43 | + var msg *protocol.ResponseMessage | ||
| 44 | + var response *aliyun.CreateUploadVideosResponse = &aliyun.CreateUploadVideosResponse{ | ||
| 45 | + List: make([]*aliyun.CreateUploadVideoResponse, 0), | ||
| 46 | + } | ||
| 47 | + defer func() { | ||
| 48 | + this.Resp(msg) | ||
| 49 | + }() | ||
| 50 | + var request *aliyun.CreateUploadVideosRequest | ||
| 51 | + if err := json.Unmarshal(this.ByteBody, &request); err != nil { | ||
| 52 | + log.Error(err) | ||
| 53 | + msg = protocol.BadRequestParam(1) | ||
| 54 | + return | ||
| 55 | + } | ||
| 56 | + if b, m := this.Valid(request); !b { | ||
| 57 | + msg = m | ||
| 58 | + return | ||
| 59 | + } | ||
| 60 | + header := controllers.GetRequestHeader(this.Ctx) | ||
| 61 | + var err error | ||
| 62 | + if len(request.Items) == 0 { | ||
| 63 | + msg = protocol.BadRequestParam(2) | ||
| 64 | + } | ||
| 65 | + for i := range request.Items { | ||
| 66 | + r := request.Items[i] | ||
| 67 | + if rsp, e := vod.CreateUploadVideo(header, r); e != nil { | ||
| 68 | + err = e | ||
| 69 | + break | ||
| 70 | + } else { | ||
| 71 | + response.List = append(response.List, rsp) | ||
| 72 | + } | ||
| 73 | + } | ||
| 74 | + msg = protocol.NewReturnResponse(response, err) | ||
| 75 | +} | ||
| 76 | + | ||
| 40 | //刷新视频上传凭证 RefreshUploadVideo | 77 | //刷新视频上传凭证 RefreshUploadVideo |
| 41 | // @router /refreshUploadVideo [post] | 78 | // @router /refreshUploadVideo [post] |
| 42 | func (this *VodController) RefreshUploadVideo() { | 79 | func (this *VodController) RefreshUploadVideo() { |
| @@ -75,6 +112,7 @@ func (this *VodController) CreateUploadImage() { | @@ -75,6 +112,7 @@ func (this *VodController) CreateUploadImage() { | ||
| 75 | msg = m | 112 | msg = m |
| 76 | return | 113 | return |
| 77 | } | 114 | } |
| 115 | + | ||
| 78 | header := controllers.GetRequestHeader(this.Ctx) | 116 | header := controllers.GetRequestHeader(this.Ctx) |
| 79 | msg = protocol.NewReturnResponse(vod.CreateUploadImage(header, request)) | 117 | msg = protocol.NewReturnResponse(vod.CreateUploadImage(header, request)) |
| 80 | } | 118 | } |
| @@ -112,7 +150,6 @@ func (this *VodController) CreateUploadImages() { | @@ -112,7 +150,6 @@ func (this *VodController) CreateUploadImages() { | ||
| 112 | err = e | 150 | err = e |
| 113 | break | 151 | break |
| 114 | } else { | 152 | } else { |
| 115 | - rsp.FileName = r.FileName | ||
| 116 | response.List = append(response.List, rsp) | 153 | response.List = append(response.List, rsp) |
| 117 | } | 154 | } |
| 118 | } | 155 | } |
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | export PATH=/root/local/bin:$PATH | 2 | export PATH=/root/local/bin:$PATH |
| 3 | -kubectl -n mmm-suplus-dev get pods | grep -q mmmopenapi | 3 | +kubectl -n mmm-suplus-dev get pods | grep -q mmm-open-api |
| 4 | if [ "$?" == "1" ];then | 4 | if [ "$?" == "1" ];then |
| 5 | - kubectl create -f /tmp/dev/mmm-go-opp/opp.yaml --record | ||
| 6 | - kubectl -n mmm-suplus-dev get svc | grep -q mmmopenapi | 5 | + kubectl create -f /tmp/dev/mmm-open-api/mmm-open-api.yaml --record |
| 6 | + kubectl -n mmm-suplus-dev get svc | grep -q mmm-open-api | ||
| 7 | if [ "$?" == "0" ];then | 7 | if [ "$?" == "0" ];then |
| 8 | - echo "mmmopenapi service install success!" | 8 | + echo "mmm-open-api service install success!" |
| 9 | else | 9 | else |
| 10 | - echo "mmmopenapi service install fail!" | 10 | + echo "mmm-open-api service install fail!" |
| 11 | fi | 11 | fi |
| 12 | - kubectl -n mmm-suplus-dev get pods | grep -q mmmopenapi | 12 | + kubectl -n mmm-suplus-dev get pods | grep -q mmm-open-api |
| 13 | if [ "$?" == "0" ];then | 13 | if [ "$?" == "0" ];then |
| 14 | - echo "mmmopenapi deployment install success!" | 14 | + echo "mmm-open-api deployment install success!" |
| 15 | else | 15 | else |
| 16 | - echo "mmmopenapi deployment install fail!" | 16 | + echo "mmm-open-api deployment install fail!" |
| 17 | fi | 17 | fi |
| 18 | else | 18 | else |
| 19 | - kubectl delete -f /tmp/dev/mmm-go-opp/opp.yaml | ||
| 20 | - kubectl -n mmm-suplus-dev get svc | grep -q mmmopenapi | 19 | + kubectl delete -f /tmp/dev/mmm-open-api/mmm-open-api.yaml |
| 20 | + kubectl -n mmm-suplus-dev get svc | grep -q mmm-open-api | ||
| 21 | while [ "$?" == "0" ] | 21 | while [ "$?" == "0" ] |
| 22 | do | 22 | do |
| 23 | - kubectl -n mmm-suplus-dev get svc | grep -q mmmopenapi | 23 | + kubectl -n mmm-suplus-dev get svc | grep -q mmm-open-api |
| 24 | done | 24 | done |
| 25 | - kubectl -n mmm-suplus-dev get pods | grep -q mmmopenapi | 25 | + kubectl -n mmm-suplus-dev get pods | grep -q mmm-open-api |
| 26 | while [ "$?" == "0" ] | 26 | while [ "$?" == "0" ] |
| 27 | do | 27 | do |
| 28 | - kubectl -n mmm-suplus-dev get pods | grep -q mmmopenapi | 28 | + kubectl -n mmm-suplus-dev get pods | grep -q mmm-open-api |
| 29 | done | 29 | done |
| 30 | - kubectl create -f /tmp/dev/mmm-go-opp/opp.yaml --record | ||
| 31 | - kubectl -n mmm-suplus-dev get svc | grep -q mmmopenapi | 30 | + kubectl create -f /tmp/dev/mmm-open-api/mmm-open-api.yaml --record |
| 31 | + kubectl -n mmm-suplus-dev get svc | grep -q mmm-open-api | ||
| 32 | if [ "$?" == "0" ];then | 32 | if [ "$?" == "0" ];then |
| 33 | - echo "mmmopenapi service update success!" | 33 | + echo "mmm-open-api service update success!" |
| 34 | else | 34 | else |
| 35 | echo "opp service update fail!" | 35 | echo "opp service update fail!" |
| 36 | fi | 36 | fi |
| 1 | apiVersion: v1 | 1 | apiVersion: v1 |
| 2 | kind: Service | 2 | kind: Service |
| 3 | metadata: | 3 | metadata: |
| 4 | - name: mmmopenapi | 4 | + name: mmm-open-api |
| 5 | namespace: mmm-suplus-dev | 5 | namespace: mmm-suplus-dev |
| 6 | labels: | 6 | labels: |
| 7 | - k8s-app: mmmopenapi | 7 | + k8s-app: mmm-open-api |
| 8 | spec: | 8 | spec: |
| 9 | ports: | 9 | ports: |
| 10 | - name: "http" | 10 | - name: "http" |
| 11 | port: 80 | 11 | port: 80 |
| 12 | targetPort: 8080 | 12 | targetPort: 8080 |
| 13 | selector: | 13 | selector: |
| 14 | - k8s-app: mmmopenapi | 14 | + k8s-app: mmm-open-api |
| 15 | --- | 15 | --- |
| 16 | apiVersion: extensions/v1beta1 | 16 | apiVersion: extensions/v1beta1 |
| 17 | kind: Deployment | 17 | kind: Deployment |
| 18 | metadata: | 18 | metadata: |
| 19 | - name: mmmopenapi | 19 | + name: mmm-open-api |
| 20 | namespace: mmm-suplus-dev | 20 | namespace: mmm-suplus-dev |
| 21 | labels: | 21 | labels: |
| 22 | - k8s-app: mmmopenapi | 22 | + k8s-app: mmm-open-api |
| 23 | spec: | 23 | spec: |
| 24 | replicas: 1 | 24 | replicas: 1 |
| 25 | template: | 25 | template: |
| 26 | metadata: | 26 | metadata: |
| 27 | labels: | 27 | labels: |
| 28 | - k8s-app: mmmopenapi | 28 | + k8s-app: mmm-open-api |
| 29 | spec: | 29 | spec: |
| 30 | affinity: | 30 | affinity: |
| 31 | nodeAffinity: | 31 | nodeAffinity: |
| @@ -43,8 +43,8 @@ spec: | @@ -43,8 +43,8 @@ spec: | ||
| 43 | - cn-hangzhou.i-bp1euf5u1ph9kbhtndhb | 43 | - cn-hangzhou.i-bp1euf5u1ph9kbhtndhb |
| 44 | - cn-hangzhou.i-bp1hyp5oips9cdwxxgxy | 44 | - cn-hangzhou.i-bp1hyp5oips9cdwxxgxy |
| 45 | containers: | 45 | containers: |
| 46 | - - name: mmmopenapi | ||
| 47 | - image: 192.168.0.243:5000/mmm/mmmopenapi:dev | 46 | + - name: mmm-open-api |
| 47 | + image: 192.168.0.243:5000/mmm/mmm-open-api:dev | ||
| 48 | imagePullPolicy: Always | 48 | imagePullPolicy: Always |
| 49 | volumeMounts: | 49 | volumeMounts: |
| 50 | - mountPath: /opt/logs | 50 | - mountPath: /opt/logs |
| @@ -84,8 +84,6 @@ spec: | @@ -84,8 +84,6 @@ spec: | ||
| 84 | configMapKeyRef: | 84 | configMapKeyRef: |
| 85 | name: suplus-config | 85 | name: suplus-config |
| 86 | key: mysql.password | 86 | key: mysql.password |
| 87 | - - name: MYSQL_DB_NAME | ||
| 88 | - value: "opportunity_dev" | ||
| 89 | - name: RUN_MODE | 87 | - name: RUN_MODE |
| 90 | value: "dev-online" | 88 | value: "dev-online" |
| 91 | - name: LOG_LEVEL | 89 | - name: LOG_LEVEL |
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | export PATH=/root/local/bin:$PATH | 2 | export PATH=/root/local/bin:$PATH |
| 3 | -kubectl -n mmm-suplus-prd get pods | grep -q mmmopp | 3 | +kubectl -n mmm-suplus-prd get pods | grep -q mmm-open-api |
| 4 | if [ "$?" == "1" ];then | 4 | if [ "$?" == "1" ];then |
| 5 | - kubectl create -f /tmp/prd/mmm-go-opp/opp.yaml --record | ||
| 6 | - kubectl -n mmm-suplus-prd get svc | grep -q mmmopp | 5 | + kubectl create -f /tmp/prd/mmm-open-api/mmm-open-api.yaml --record |
| 6 | + kubectl -n mmm-suplus-prd get svc | grep -q mmm-open-api | ||
| 7 | if [ "$?" == "0" ];then | 7 | if [ "$?" == "0" ];then |
| 8 | - echo "mmmopp service install success!" | 8 | + echo "mmm-open-api service install success!" |
| 9 | else | 9 | else |
| 10 | - echo "mmmopp service install fail!" | 10 | + echo "mmm-open-api service install fail!" |
| 11 | fi | 11 | fi |
| 12 | - kubectl -n mmm-suplus-prd get pods | grep -q mmmopp | 12 | + kubectl -n mmm-suplus-prd get pods | grep -q mmm-open-api |
| 13 | if [ "$?" == "0" ];then | 13 | if [ "$?" == "0" ];then |
| 14 | - echo "mmmopp deployment install success!" | 14 | + echo "mmm-open-api deployment install success!" |
| 15 | else | 15 | else |
| 16 | - echo "mmmopp deployment install fail!" | 16 | + echo "mmm-open-api deployment install fail!" |
| 17 | fi | 17 | fi |
| 18 | else | 18 | else |
| 19 | - kubectl delete -f /tmp/prd/mmm-go-opp/opp.yaml | ||
| 20 | - kubectl -n mmm-suplus-prd get svc | grep -q mmmopp | 19 | + kubectl delete -f /tmp/prd/mmm-open-api/mmm-open-api.yaml |
| 20 | + kubectl -n mmm-suplus-prd get svc | grep -q mmm-open-api | ||
| 21 | while [ "$?" == "0" ] | 21 | while [ "$?" == "0" ] |
| 22 | do | 22 | do |
| 23 | - kubectl -n mmm-suplus-prd get svc | grep -q mmmopp | 23 | + kubectl -n mmm-suplus-prd get svc | grep -q mmm-open-api |
| 24 | done | 24 | done |
| 25 | - kubectl -n mmm-suplus-prd get pods | grep -q mmmopp | 25 | + kubectl -n mmm-suplus-prd get pods | grep -q mmm-open-api |
| 26 | while [ "$?" == "0" ] | 26 | while [ "$?" == "0" ] |
| 27 | do | 27 | do |
| 28 | - kubectl -n mmm-suplus-prd get pods | grep -q mmmopp | 28 | + kubectl -n mmm-suplus-prd get pods | grep -q mmm-open-api |
| 29 | done | 29 | done |
| 30 | - kubectl create -f /tmp/prd/mmm-go-opp/opp.yaml --record | ||
| 31 | - kubectl -n mmm-suplus-prd get svc | grep -q mmmopp | 30 | + kubectl create -f /tmp/prd/mmm-open-api/mmm-open-api.yaml --record |
| 31 | + kubectl -n mmm-suplus-prd get svc | grep -q mmm-open-api | ||
| 32 | if [ "$?" == "0" ];then | 32 | if [ "$?" == "0" ];then |
| 33 | - echo "mmmopp service update success!" | 33 | + echo "mmm-open-api service update success!" |
| 34 | else | 34 | else |
| 35 | - echo "opp service update fail!" | 35 | + echo "mmm-open-api service update fail!" |
| 36 | fi | 36 | fi |
| 37 | - kubectl -n mmm-suplus-prd get pods | grep -q opp | 37 | + kubectl -n mmm-suplus-prd get pods | grep -q mmm-open-api |
| 38 | if [ "$?" == "0" ];then | 38 | if [ "$?" == "0" ];then |
| 39 | - echo "opp deployment update success!" | 39 | + echo "mmm-open-api deployment update success!" |
| 40 | else | 40 | else |
| 41 | - echo "opp deployment update fail!" | 41 | + echo "mmm-open-api deployment update fail!" |
| 42 | fi | 42 | fi |
| 43 | fi | 43 | fi |
| 1 | apiVersion: v1 | 1 | apiVersion: v1 |
| 2 | kind: Service | 2 | kind: Service |
| 3 | metadata: | 3 | metadata: |
| 4 | - name: mmmopp | 4 | + name: mmm-open-api |
| 5 | namespace: mmm-suplus-prd | 5 | namespace: mmm-suplus-prd |
| 6 | labels: | 6 | labels: |
| 7 | - k8s-app: mmmopp | 7 | + k8s-app: mmm-open-api |
| 8 | spec: | 8 | spec: |
| 9 | ports: | 9 | ports: |
| 10 | - name: "http" | 10 | - name: "http" |
| 11 | port: 80 | 11 | port: 80 |
| 12 | targetPort: 8080 | 12 | targetPort: 8080 |
| 13 | - - name: "https" | ||
| 14 | - port: 443 | ||
| 15 | - targetPort: 443 | ||
| 16 | selector: | 13 | selector: |
| 17 | - k8s-app: mmmopp | 14 | + k8s-app: mmm-open-api |
| 18 | --- | 15 | --- |
| 19 | apiVersion: extensions/v1beta1 | 16 | apiVersion: extensions/v1beta1 |
| 20 | kind: Deployment | 17 | kind: Deployment |
| 21 | metadata: | 18 | metadata: |
| 22 | - name: mmmopp | 19 | + name: mmm-open-api |
| 23 | namespace: mmm-suplus-prd | 20 | namespace: mmm-suplus-prd |
| 24 | labels: | 21 | labels: |
| 25 | - k8s-app: mmmopp | 22 | + k8s-app: mmm-open-api |
| 26 | spec: | 23 | spec: |
| 27 | replicas: 1 | 24 | replicas: 1 |
| 28 | template: | 25 | template: |
| 29 | metadata: | 26 | metadata: |
| 30 | labels: | 27 | labels: |
| 31 | - k8s-app: mmmopp | 28 | + k8s-app: mmm-open-api |
| 32 | spec: | 29 | spec: |
| 33 | affinity: | 30 | affinity: |
| 34 | nodeAffinity: | 31 | nodeAffinity: |
| @@ -46,17 +43,16 @@ spec: | @@ -46,17 +43,16 @@ spec: | ||
| 46 | - cn-hangzhou.i-bp1euf5u1ph9kbhtndhb | 43 | - cn-hangzhou.i-bp1euf5u1ph9kbhtndhb |
| 47 | - cn-hangzhou.i-bp1hyp5oips9cdwxxgxy | 44 | - cn-hangzhou.i-bp1hyp5oips9cdwxxgxy |
| 48 | containers: | 45 | containers: |
| 49 | - - name: mmmopp | ||
| 50 | - image: 192.168.0.243:5000/mmm/mmmopp:master | 46 | + - name: mmm-open-api |
| 47 | + image: 192.168.0.243:5000/mmm/mmm-open-api:dev | ||
| 51 | imagePullPolicy: Always | 48 | imagePullPolicy: Always |
| 52 | volumeMounts: | 49 | volumeMounts: |
| 53 | - mountPath: /opt/logs | 50 | - mountPath: /opt/logs |
| 54 | name: accesslogs | 51 | name: accesslogs |
| 55 | - mountPath: /var/www/opp/file | 52 | - mountPath: /var/www/opp/file |
| 56 | - name: opportunity-pvc1 | 53 | + name: mmmjihuitest-pvc1 |
| 57 | ports: | 54 | ports: |
| 58 | - containerPort: 8080 | 55 | - containerPort: 8080 |
| 59 | - - containerPort: 443 | ||
| 60 | env: | 56 | env: |
| 61 | - name: MYSQL_HOST | 57 | - name: MYSQL_HOST |
| 62 | valueFrom: | 58 | valueFrom: |
| @@ -88,8 +84,6 @@ spec: | @@ -88,8 +84,6 @@ spec: | ||
| 88 | configMapKeyRef: | 84 | configMapKeyRef: |
| 89 | name: suplus-config | 85 | name: suplus-config |
| 90 | key: mysql.password | 86 | key: mysql.password |
| 91 | - - name: MYSQL_DB_NAME | ||
| 92 | - value: "opportunity" | ||
| 93 | - name: RUN_MODE | 87 | - name: RUN_MODE |
| 94 | value: "prod" | 88 | value: "prod" |
| 95 | - name: LOG_LEVEL | 89 | - name: LOG_LEVEL |
| @@ -101,6 +95,6 @@ spec: | @@ -101,6 +95,6 @@ spec: | ||
| 101 | volumes: | 95 | volumes: |
| 102 | - name: accesslogs | 96 | - name: accesslogs |
| 103 | emptyDir: {} | 97 | emptyDir: {} |
| 104 | - - name: opportunity-pvc1 | 98 | + - name: mmmjihuitest-pvc1 |
| 105 | persistentVolumeClaim: | 99 | persistentVolumeClaim: |
| 106 | - claimName: opportunity-pvc5 | ||
| 100 | + claimName: mmmjihuitest-pvc |
| 1 | #!/bin/bash | 1 | #!/bin/bash |
| 2 | export PATH=/root/local/bin:$PATH | 2 | export PATH=/root/local/bin:$PATH |
| 3 | -kubectl -n mmm-suplus-test get pods | grep -q mmmopp | 3 | +kubectl -n mmm-suplus-test get pods | grep -q mmm-open-api |
| 4 | if [ "$?" == "1" ];then | 4 | if [ "$?" == "1" ];then |
| 5 | - kubectl create -f /tmp/test/mmm-go-opp/opp.yaml --record | ||
| 6 | - kubectl -n mmm-suplus-test get svc | grep -q mmmopp | 5 | + kubectl create -f /tmp/test/mmm-open-api/mmm-open-api.yaml --record |
| 6 | + kubectl -n mmm-suplus-test get svc | grep -q mmm-open-api | ||
| 7 | if [ "$?" == "0" ];then | 7 | if [ "$?" == "0" ];then |
| 8 | - echo "mmmopp service install success!" | 8 | + echo "mmm-open-api service install success!" |
| 9 | else | 9 | else |
| 10 | - echo "mmmopp service install fail!" | 10 | + echo "mmm-open-api service install fail!" |
| 11 | fi | 11 | fi |
| 12 | - kubectl -n mmm-suplus-test get pods | grep -q mmmopp | 12 | + kubectl -n mmm-suplus-test get pods | grep -q mmm-open-api |
| 13 | if [ "$?" == "0" ];then | 13 | if [ "$?" == "0" ];then |
| 14 | - echo "mmmopp deployment install success!" | 14 | + echo "mmm-open-api deployment install success!" |
| 15 | else | 15 | else |
| 16 | - echo "mmmopp deployment install fail!" | 16 | + echo "mmm-open-api deployment install fail!" |
| 17 | fi | 17 | fi |
| 18 | else | 18 | else |
| 19 | - kubectl delete -f /tmp/test/mmm-go-opp/opp.yaml | ||
| 20 | - kubectl -n mmm-suplus-test get svc | grep -q mmmopp | 19 | + kubectl delete -f /tmp/test/mmm-open-api/mmm-open-api.yaml |
| 20 | + kubectl -n mmm-suplus-test get svc | grep -q mmm-open-api | ||
| 21 | while [ "$?" == "0" ] | 21 | while [ "$?" == "0" ] |
| 22 | do | 22 | do |
| 23 | - kubectl -n mmm-suplus-test get svc | grep -q mmmopp | 23 | + kubectl -n mmm-suplus-test get svc | grep -q mmm-open-api |
| 24 | done | 24 | done |
| 25 | - kubectl -n mmm-suplus-test get pods | grep -q mmmopp | 25 | + kubectl -n mmm-suplus-test get pods | grep -q mmm-open-api |
| 26 | while [ "$?" == "0" ] | 26 | while [ "$?" == "0" ] |
| 27 | do | 27 | do |
| 28 | - kubectl -n mmm-suplus-test get pods | grep -q mmmopp | 28 | + kubectl -n mmm-suplus-test get pods | grep -q mmm-open-api |
| 29 | done | 29 | done |
| 30 | - kubectl create -f /tmp/test/mmm-go-opp/opp.yaml --record | ||
| 31 | - kubectl -n mmm-suplus-test get svc | grep -q mmmopp | 30 | + kubectl create -f /tmp/test/mmm-open-api/mmm-open-api.yaml --record |
| 31 | + kubectl -n mmm-suplus-test get svc | grep -q mmm-open-api | ||
| 32 | if [ "$?" == "0" ];then | 32 | if [ "$?" == "0" ];then |
| 33 | - echo "mmmopp service update success!" | 33 | + echo "mmm-open-api service update success!" |
| 34 | else | 34 | else |
| 35 | echo "opp service update fail!" | 35 | echo "opp service update fail!" |
| 36 | fi | 36 | fi |
| 1 | apiVersion: v1 | 1 | apiVersion: v1 |
| 2 | kind: Service | 2 | kind: Service |
| 3 | metadata: | 3 | metadata: |
| 4 | - name: mmmopp | 4 | + name: mmm-open-api |
| 5 | namespace: mmm-suplus-test | 5 | namespace: mmm-suplus-test |
| 6 | labels: | 6 | labels: |
| 7 | - k8s-app: mmmopp | 7 | + k8s-app: mmm-open-api |
| 8 | spec: | 8 | spec: |
| 9 | ports: | 9 | ports: |
| 10 | - name: "http" | 10 | - name: "http" |
| 11 | port: 80 | 11 | port: 80 |
| 12 | targetPort: 8080 | 12 | targetPort: 8080 |
| 13 | - - name: "https" | ||
| 14 | - port: 443 | ||
| 15 | - targetPort: 443 | ||
| 16 | selector: | 13 | selector: |
| 17 | - k8s-app: mmmopp | 14 | + k8s-app: mmm-open-api |
| 18 | --- | 15 | --- |
| 19 | apiVersion: extensions/v1beta1 | 16 | apiVersion: extensions/v1beta1 |
| 20 | kind: Deployment | 17 | kind: Deployment |
| 21 | metadata: | 18 | metadata: |
| 22 | - name: mmmopp | 19 | + name: mmm-open-api |
| 23 | namespace: mmm-suplus-test | 20 | namespace: mmm-suplus-test |
| 24 | labels: | 21 | labels: |
| 25 | - k8s-app: mmmopp | 22 | + k8s-app: mmm-open-api |
| 26 | spec: | 23 | spec: |
| 27 | replicas: 1 | 24 | replicas: 1 |
| 28 | template: | 25 | template: |
| 29 | metadata: | 26 | metadata: |
| 30 | labels: | 27 | labels: |
| 31 | - k8s-app: mmmopp | 28 | + k8s-app: mmm-open-api |
| 32 | spec: | 29 | spec: |
| 33 | affinity: | 30 | affinity: |
| 34 | nodeAffinity: | 31 | nodeAffinity: |
| @@ -46,17 +43,16 @@ spec: | @@ -46,17 +43,16 @@ spec: | ||
| 46 | - cn-hangzhou.i-bp1euf5u1ph9kbhtndhb | 43 | - cn-hangzhou.i-bp1euf5u1ph9kbhtndhb |
| 47 | - cn-hangzhou.i-bp1hyp5oips9cdwxxgxy | 44 | - cn-hangzhou.i-bp1hyp5oips9cdwxxgxy |
| 48 | containers: | 45 | containers: |
| 49 | - - name: mmmopp | ||
| 50 | - image: 192.168.0.243:5000/mmm/mmmopp:dev | 46 | + - name: mmm-open-api |
| 47 | + image: 192.168.0.243:5000/mmm/mmm-open-api:dev | ||
| 51 | imagePullPolicy: Always | 48 | imagePullPolicy: Always |
| 52 | volumeMounts: | 49 | volumeMounts: |
| 53 | - mountPath: /opt/logs | 50 | - mountPath: /opt/logs |
| 54 | name: accesslogs | 51 | name: accesslogs |
| 55 | - mountPath: /var/www/opp/file | 52 | - mountPath: /var/www/opp/file |
| 56 | - name: mmmjihuitest2-pvc1 | 53 | + name: mmmjihuitest-pvc1 |
| 57 | ports: | 54 | ports: |
| 58 | - containerPort: 8080 | 55 | - containerPort: 8080 |
| 59 | - - containerPort: 443 | ||
| 60 | env: | 56 | env: |
| 61 | - name: MYSQL_HOST | 57 | - name: MYSQL_HOST |
| 62 | valueFrom: | 58 | valueFrom: |
| @@ -88,8 +84,6 @@ spec: | @@ -88,8 +84,6 @@ spec: | ||
| 88 | configMapKeyRef: | 84 | configMapKeyRef: |
| 89 | name: suplus-config | 85 | name: suplus-config |
| 90 | key: mysql.password | 86 | key: mysql.password |
| 91 | - - name: MYSQL_DB_NAME | ||
| 92 | - value: "opportunity_test" | ||
| 93 | - name: RUN_MODE | 87 | - name: RUN_MODE |
| 94 | value: "test" | 88 | value: "test" |
| 95 | - name: LOG_LEVEL | 89 | - name: LOG_LEVEL |
| @@ -101,6 +95,6 @@ spec: | @@ -101,6 +95,6 @@ spec: | ||
| 101 | volumes: | 95 | volumes: |
| 102 | - name: accesslogs | 96 | - name: accesslogs |
| 103 | emptyDir: {} | 97 | emptyDir: {} |
| 104 | - - name: mmmjihuitest2-pvc1 | 98 | + - name: mmmjihuitest-pvc1 |
| 105 | persistentVolumeClaim: | 99 | persistentVolumeClaim: |
| 106 | - claimName: mmmjihuitest2-pvc | ||
| 100 | + claimName: mmmjihuitest-pvc |
| @@ -5,6 +5,7 @@ go 1.12 | @@ -5,6 +5,7 @@ go 1.12 | ||
| 5 | require ( | 5 | require ( |
| 6 | github.com/aliyun/alibaba-cloud-sdk-go v1.60.348 | 6 | github.com/aliyun/alibaba-cloud-sdk-go v1.60.348 |
| 7 | github.com/astaxie/beego v1.10.0 | 7 | github.com/astaxie/beego v1.10.0 |
| 8 | + github.com/klauspost/cpuid v1.2.3 // indirect | ||
| 8 | gitlab.fjmaimaimai.com/mmm-go/gocomm v0.0.1 | 9 | gitlab.fjmaimaimai.com/mmm-go/gocomm v0.0.1 |
| 9 | ) | 10 | ) |
| 10 | 11 |
| 1 | package aliyun | 1 | package aliyun |
| 2 | 2 | ||
| 3 | +import "fmt" | ||
| 4 | + | ||
| 5 | +var ( | ||
| 6 | + OssErrFileFormat = fmt.Errorf("文件名格式有错") | ||
| 7 | +) | ||
| 8 | + | ||
| 3 | //创建视频上传凭证 | 9 | //创建视频上传凭证 |
| 4 | /*CreateUploadVideo */ | 10 | /*CreateUploadVideo */ |
| 5 | type CreateUploadVideoRequest struct { | 11 | type CreateUploadVideoRequest struct { |
| 6 | FileName string `json:"fileName"` | 12 | FileName string `json:"fileName"` |
| 13 | + Title string `json:"title"` | ||
| 7 | } | 14 | } |
| 8 | 15 | ||
| 9 | type CreateUploadVideoResponse struct { | 16 | type CreateUploadVideoResponse struct { |
| 17 | + FileName string `json:"fileName"` | ||
| 10 | RequestId string `json:"requestId"` | 18 | RequestId string `json:"requestId"` |
| 11 | VideoId string `json:"videoId"` | 19 | VideoId string `json:"videoId"` |
| 12 | UploadAddress string `json:"uploadAddress"` | 20 | UploadAddress string `json:"uploadAddress"` |
| @@ -14,6 +22,14 @@ type CreateUploadVideoResponse struct { | @@ -14,6 +22,14 @@ type CreateUploadVideoResponse struct { | ||
| 14 | FileURL string `json:"fileURL"` | 22 | FileURL string `json:"fileURL"` |
| 15 | } | 23 | } |
| 16 | 24 | ||
| 25 | +/*CreateUploadVideos */ | ||
| 26 | +type CreateUploadVideosRequest struct { | ||
| 27 | + Items []*CreateUploadVideoRequest `json:"items"` | ||
| 28 | +} | ||
| 29 | +type CreateUploadVideosResponse struct { | ||
| 30 | + List []*CreateUploadVideoResponse `json:"list"` | ||
| 31 | +} | ||
| 32 | + | ||
| 17 | //刷新视频上传凭证 RefreshUploadVideo | 33 | //刷新视频上传凭证 RefreshUploadVideo |
| 18 | type RefreshUploadVideoRequest struct { | 34 | type RefreshUploadVideoRequest struct { |
| 19 | VideoId string `json:"videoId" valid:"Required;"` | 35 | VideoId string `json:"videoId" valid:"Required;"` |
| @@ -2,6 +2,7 @@ package aliyun | @@ -2,6 +2,7 @@ package aliyun | ||
| 2 | 2 | ||
| 3 | type CreateUploadImageRequest struct { | 3 | type CreateUploadImageRequest struct { |
| 4 | FileName string `json:"fileName"` | 4 | FileName string `json:"fileName"` |
| 5 | + Title string `json:"title"` | ||
| 5 | } | 6 | } |
| 6 | 7 | ||
| 7 | type CreateUploadImageResponse struct { | 8 | type CreateUploadImageResponse struct { |
| @@ -4,9 +4,16 @@ import ( | @@ -4,9 +4,16 @@ import ( | ||
| 4 | "encoding/base64" | 4 | "encoding/base64" |
| 5 | "encoding/json" | 5 | "encoding/json" |
| 6 | "fmt" | 6 | "fmt" |
| 7 | + "path/filepath" | ||
| 7 | "strings" | 8 | "strings" |
| 8 | ) | 9 | ) |
| 9 | 10 | ||
| 11 | +var ( | ||
| 12 | + VoiceFileExt = ".mp3.wma.wav.aac.ra.m4a.flac.ape.ac3.amr" | ||
| 13 | + ImageFileExt = ".png.jpg.jpeg.gif" | ||
| 14 | + VideoFileExt = ".mp4.ts.3gp.mpg.mpeg.mpe.dat.vob.asf" | ||
| 15 | +) | ||
| 16 | + | ||
| 10 | type UploadAddress struct { | 17 | type UploadAddress struct { |
| 11 | Endpoint string | 18 | Endpoint string |
| 12 | Bucket string | 19 | Bucket string |
| @@ -38,3 +45,19 @@ func ParseUploadAddress(uploadAddress string) (up UploadAddress, err error) { | @@ -38,3 +45,19 @@ func ParseUploadAddress(uploadAddress string) (up UploadAddress, err error) { | ||
| 38 | } | 45 | } |
| 39 | return | 46 | return |
| 40 | } | 47 | } |
| 48 | + | ||
| 49 | +func validFileExt(rule string, ext string) bool { | ||
| 50 | + if strings.ContainsAny(rule, strings.ToLower(ext)) { | ||
| 51 | + return true | ||
| 52 | + } | ||
| 53 | + return false | ||
| 54 | +} | ||
| 55 | + | ||
| 56 | +//@rule 规则 | ||
| 57 | +func ValidFileExt(rule, filename string) bool { | ||
| 58 | + if len(filename) == 0 { | ||
| 59 | + return false | ||
| 60 | + } | ||
| 61 | + ext := filepath.Ext(filename) | ||
| 62 | + return validFileExt(rule, ext) | ||
| 63 | +} |
| @@ -41,12 +41,8 @@ func InitVodClient(accessKeyId string, accessKeySecret string) (client *vod.Clie | @@ -41,12 +41,8 @@ func InitVodClient(accessKeyId string, accessKeySecret string) (client *vod.Clie | ||
| 41 | //获取视频上传地址和凭证,并创建视频信息 | 41 | //获取视频上传地址和凭证,并创建视频信息 |
| 42 | func CreateUploadVideo(client *vod.Client, r *CreateUploadVideoRequest) (response *CreateUploadVideoResponse, err error) { | 42 | func CreateUploadVideo(client *vod.Client, r *CreateUploadVideoRequest) (response *CreateUploadVideoResponse, err error) { |
| 43 | request := vod.CreateCreateUploadVideoRequest() | 43 | request := vod.CreateCreateUploadVideoRequest() |
| 44 | - filePath := getFileName(FileVideo, r.FileName) | ||
| 45 | - if filepath.Ext(r.FileName) == "mp3" { | ||
| 46 | - filePath = getFileName(FileVoice, r.FileName) | ||
| 47 | - } | ||
| 48 | - request.Title = filePath | ||
| 49 | - request.FileName = filePath | 44 | + request.Title = r.Title |
| 45 | + request.FileName = r.FileName | ||
| 50 | request.AcceptFormat = "JSON" | 46 | request.AcceptFormat = "JSON" |
| 51 | rsp, err := client.CreateUploadVideo(request) | 47 | rsp, err := client.CreateUploadVideo(request) |
| 52 | if err != nil { | 48 | if err != nil { |
| @@ -58,11 +54,6 @@ func CreateUploadVideo(client *vod.Client, r *CreateUploadVideoRequest) (respons | @@ -58,11 +54,6 @@ func CreateUploadVideo(client *vod.Client, r *CreateUploadVideoRequest) (respons | ||
| 58 | UploadAddress: rsp.UploadAddress, | 54 | UploadAddress: rsp.UploadAddress, |
| 59 | UploadAuth: rsp.UploadAuth, | 55 | UploadAuth: rsp.UploadAuth, |
| 60 | } | 56 | } |
| 61 | - if up, e := ParseUploadAddress(rsp.UploadAddress); e != nil { | ||
| 62 | - log.Error(e) | ||
| 63 | - } else { | ||
| 64 | - response.FileURL = up.GetFileUrl(beego.AppConfig.String("cname")) | ||
| 65 | - } | ||
| 66 | return | 57 | return |
| 67 | } | 58 | } |
| 68 | 59 | ||
| @@ -90,9 +81,12 @@ func RefreshUploadVideo(client *vod.Client, r *RefreshUploadVideoRequest) (respo | @@ -90,9 +81,12 @@ func RefreshUploadVideo(client *vod.Client, r *RefreshUploadVideoRequest) (respo | ||
| 90 | //获取图片上传地址和凭证,并创建视频信息 | 81 | //获取图片上传地址和凭证,并创建视频信息 |
| 91 | func CreateUploadImage(client *vod.Client, r *CreateUploadImageRequest) (response *CreateUploadImageResponse, err error) { | 82 | func CreateUploadImage(client *vod.Client, r *CreateUploadImageRequest) (response *CreateUploadImageResponse, err error) { |
| 92 | request := vod.CreateCreateUploadImageRequest() | 83 | request := vod.CreateCreateUploadImageRequest() |
| 93 | - filePath := getFileName(FileImage, r.FileName) | ||
| 94 | request.ImageType = "default" | 84 | request.ImageType = "default" |
| 95 | - request.Title = filePath | 85 | + request.Title = r.Title |
| 86 | + if filepath.Ext(r.FileName) == "" { | ||
| 87 | + err = fmt.Errorf("filename:%v invalid", r.FileName) | ||
| 88 | + return | ||
| 89 | + } | ||
| 96 | request.ImageExt = filepath.Ext(r.FileName)[1:] | 90 | request.ImageExt = filepath.Ext(r.FileName)[1:] |
| 97 | request.AcceptFormat = "JSON" | 91 | request.AcceptFormat = "JSON" |
| 98 | //request.StorageLocation = filepath.Base(request.Title) | 92 | //request.StorageLocation = filepath.Base(request.Title) |
| @@ -127,7 +121,7 @@ func GetGetVideoPlayAuth(client *vod.Client, r *GetVideoPlayAuthRequest) (respon | @@ -127,7 +121,7 @@ func GetGetVideoPlayAuth(client *vod.Client, r *GetVideoPlayAuthRequest) (respon | ||
| 127 | } | 121 | } |
| 128 | 122 | ||
| 129 | //fileType: video voice image | 123 | //fileType: video voice image |
| 130 | -func getFileName(fileType string, filename string) string { | 124 | +func GetFileName(fileType string, filename string) string { |
| 131 | date := comm_time.GetTimeByYyyymmdd() | 125 | date := comm_time.GetTimeByYyyymmdd() |
| 132 | subfix := path.Ext(filename) | 126 | subfix := path.Ext(filename) |
| 133 | prefix := fmt.Sprintf("%v_%v", time.Now().Unix(), common.RandomString(32)) | 127 | prefix := fmt.Sprintf("%v_%v", time.Now().Unix(), common.RandomString(32)) |
| 1 | package utils | 1 | package utils |
| 2 | 2 | ||
| 3 | -import "os" | 3 | +import ( |
| 4 | + "fmt" | ||
| 5 | + "github.com/astaxie/beego" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/gocomm/common" | ||
| 7 | + comm_time "gitlab.fjmaimaimai.com/mmm-go/gocomm/time" | ||
| 8 | + "os" | ||
| 9 | + "path" | ||
| 10 | + "time" | ||
| 11 | +) | ||
| 4 | 12 | ||
| 5 | // 判断所给路径文件/文件夹是否存在 | 13 | // 判断所给路径文件/文件夹是否存在 |
| 6 | func Exists(path string) bool { | 14 | func Exists(path string) bool { |
| @@ -27,3 +35,16 @@ func IsDir(path string) bool { | @@ -27,3 +35,16 @@ func IsDir(path string) bool { | ||
| 27 | func IsFile(path string) bool { | 35 | func IsFile(path string) bool { |
| 28 | return !IsDir(path) | 36 | return !IsDir(path) |
| 29 | } | 37 | } |
| 38 | + | ||
| 39 | +//fileType: video voice image | ||
| 40 | +func GetFileName(projectName, fileType string, filename string) string { | ||
| 41 | + date := comm_time.GetTimeByYyyymmdd() | ||
| 42 | + subfix := path.Ext(filename) | ||
| 43 | + if len(projectName) == 0 { | ||
| 44 | + projectName = beego.BConfig.AppName | ||
| 45 | + } | ||
| 46 | + prefix := fmt.Sprintf("%v_%v", time.Now().Unix(), common.RandomString(32)) | ||
| 47 | + filename = fmt.Sprintf("%v%v", prefix, subfix) | ||
| 48 | + sourcePath := fmt.Sprintf("%v/%v/%v/%v/%v", projectName, beego.BConfig.RunMode, date, fileType, filename) | ||
| 49 | + return sourcePath | ||
| 50 | +} |
| 1 | package main | 1 | package main |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | + "fmt" | ||
| 4 | "github.com/astaxie/beego" | 5 | "github.com/astaxie/beego" |
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/gocomm/config" | ||
| 5 | "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" | 7 | "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" |
| 8 | + "openapi/internal/utils" | ||
| 6 | _ "openapi/routers" | 9 | _ "openapi/routers" |
| 7 | "time" | 10 | "time" |
| 8 | ) | 11 | ) |
| 9 | 12 | ||
| 10 | func init() { | 13 | func init() { |
| 11 | time.Local = time.FixedZone("CST", 3600*8) | 14 | time.Local = time.FixedZone("CST", 3600*8) |
| 15 | + log.InitLog(config.Logger{ | ||
| 16 | + Filename: beego.AppConfig.String("aliyun_logs_access"), | ||
| 17 | + Level: fmt.Sprintf("%v", utils.ResolveLogLevel(beego.AppConfig.String("log_level"))), | ||
| 18 | + }) | ||
| 12 | } | 19 | } |
| 13 | 20 | ||
| 14 | func main() { | 21 | func main() { |
| 15 | defer func() { | 22 | defer func() { |
| 16 | - log.Info("app on stop!") | 23 | + log.Info("open-api on stop!") |
| 17 | }() | 24 | }() |
| 18 | - log.Info("app on start!") | 25 | + |
| 26 | + log.Info("open-api on start!") | ||
| 19 | log.Info("Beego Run Mode:", beego.BConfig.RunMode) | 27 | log.Info("Beego Run Mode:", beego.BConfig.RunMode) |
| 20 | 28 | ||
| 21 | beego.Run() | 29 | beego.Run() |
routers/commentsRouter_controllers_v1.go
0 → 100644
| 1 | +package routers | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/astaxie/beego" | ||
| 5 | + "github.com/astaxie/beego/context/param" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func init() { | ||
| 9 | + | ||
| 10 | + beego.GlobalControllerRouter["openapi/controllers/v1:VodController"] = append(beego.GlobalControllerRouter["openapi/controllers/v1:VodController"], | ||
| 11 | + beego.ControllerComments{ | ||
| 12 | + Method: "CreateUploadImage", | ||
| 13 | + Router: `/createUploadImage`, | ||
| 14 | + AllowHTTPMethods: []string{"post"}, | ||
| 15 | + MethodParams: param.Make(), | ||
| 16 | + Params: nil}) | ||
| 17 | + | ||
| 18 | + beego.GlobalControllerRouter["openapi/controllers/v1:VodController"] = append(beego.GlobalControllerRouter["openapi/controllers/v1:VodController"], | ||
| 19 | + beego.ControllerComments{ | ||
| 20 | + Method: "CreateUploadImages", | ||
| 21 | + Router: `/createUploadImages`, | ||
| 22 | + AllowHTTPMethods: []string{"post"}, | ||
| 23 | + MethodParams: param.Make(), | ||
| 24 | + Params: nil}) | ||
| 25 | + | ||
| 26 | + beego.GlobalControllerRouter["openapi/controllers/v1:VodController"] = append(beego.GlobalControllerRouter["openapi/controllers/v1:VodController"], | ||
| 27 | + beego.ControllerComments{ | ||
| 28 | + Method: "CreateUploadVideo", | ||
| 29 | + Router: `/createUploadVideo`, | ||
| 30 | + AllowHTTPMethods: []string{"post"}, | ||
| 31 | + MethodParams: param.Make(), | ||
| 32 | + Params: nil}) | ||
| 33 | + | ||
| 34 | + beego.GlobalControllerRouter["openapi/controllers/v1:VodController"] = append(beego.GlobalControllerRouter["openapi/controllers/v1:VodController"], | ||
| 35 | + beego.ControllerComments{ | ||
| 36 | + Method: "CreateUploadVideos", | ||
| 37 | + Router: `/createUploadVideos`, | ||
| 38 | + AllowHTTPMethods: []string{"post"}, | ||
| 39 | + MethodParams: param.Make(), | ||
| 40 | + Params: nil}) | ||
| 41 | + | ||
| 42 | + beego.GlobalControllerRouter["openapi/controllers/v1:VodController"] = append(beego.GlobalControllerRouter["openapi/controllers/v1:VodController"], | ||
| 43 | + beego.ControllerComments{ | ||
| 44 | + Method: "GetPlayInfo", | ||
| 45 | + Router: `/getPlayInfo`, | ||
| 46 | + AllowHTTPMethods: []string{"post"}, | ||
| 47 | + MethodParams: param.Make(), | ||
| 48 | + Params: nil}) | ||
| 49 | + | ||
| 50 | + beego.GlobalControllerRouter["openapi/controllers/v1:VodController"] = append(beego.GlobalControllerRouter["openapi/controllers/v1:VodController"], | ||
| 51 | + beego.ControllerComments{ | ||
| 52 | + Method: "GetVideoPlayAuth", | ||
| 53 | + Router: `/getVideoPlayAuth`, | ||
| 54 | + AllowHTTPMethods: []string{"post"}, | ||
| 55 | + MethodParams: param.Make(), | ||
| 56 | + Params: nil}) | ||
| 57 | + | ||
| 58 | + beego.GlobalControllerRouter["openapi/controllers/v1:VodController"] = append(beego.GlobalControllerRouter["openapi/controllers/v1:VodController"], | ||
| 59 | + beego.ControllerComments{ | ||
| 60 | + Method: "RefreshUploadVideo", | ||
| 61 | + Router: `/refreshUploadVideo`, | ||
| 62 | + AllowHTTPMethods: []string{"post"}, | ||
| 63 | + MethodParams: param.Make(), | ||
| 64 | + Params: nil}) | ||
| 65 | + | ||
| 66 | +} |
| @@ -9,8 +9,10 @@ import ( | @@ -9,8 +9,10 @@ import ( | ||
| 9 | var nsV1 *beego.Namespace | 9 | var nsV1 *beego.Namespace |
| 10 | 10 | ||
| 11 | func init() { | 11 | func init() { |
| 12 | - nsVod := beego.NewNamespace("vod", beego.NSBefore(controllers.LogRequestData), beego.NSBefore(controllers.AllowOption), beego.NSInclude(&v1.VodController{})) | ||
| 13 | - | 12 | + nsV1 := beego.NewNamespace("v1", |
| 13 | + beego.NSNamespace("vod", beego.NSBefore(controllers.AllowOption), beego.NSInclude(&v1.VodController{})), | ||
| 14 | + //beego.NSNamespace("vod", beego.NSBefore(controllers.FilterComm), beego.NSBefore(controllers.AllowOption), beego.NSInclude(&v1.VodController{})), | ||
| 15 | + ) | ||
| 14 | beego.SetStaticPath("/log", beego.AppConfig.String("aliyun_logs_access")) | 16 | beego.SetStaticPath("/log", beego.AppConfig.String("aliyun_logs_access")) |
| 15 | - beego.AddNamespace(nsVod) | 17 | + beego.AddNamespace(nsV1) |
| 16 | } | 18 | } |
services/vod/error.go
0 → 100644
| 1 | +package vod | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "openapi/internal/aliyun" | ||
| 5 | + "openapi/protocol" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +//错误处理 | ||
| 9 | +func ErrorHandler(in error) (err error) { | ||
| 10 | + switch in { | ||
| 11 | + case aliyun.OssErrFileFormat: | ||
| 12 | + err = protocol.NewCustomMessage(2, in.Error()) | ||
| 13 | + break | ||
| 14 | + default: | ||
| 15 | + err = in | ||
| 16 | + return | ||
| 17 | + } | ||
| 18 | + return | ||
| 19 | +} |
| 1 | package vod | 1 | package vod |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | + "github.com/astaxie/beego" | ||
| 4 | "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" | 5 | "gitlab.fjmaimaimai.com/mmm-go/gocomm/pkg/log" |
| 5 | "openapi/internal/aliyun" | 6 | "openapi/internal/aliyun" |
| 7 | + "openapi/internal/utils" | ||
| 6 | "openapi/protocol" | 8 | "openapi/protocol" |
| 7 | ) | 9 | ) |
| 8 | 10 | ||
| 9 | //创建视频上传凭证 | 11 | //创建视频上传凭证 |
| 10 | func CreateUploadVideo(header *protocol.RequestHeader, request *aliyun.CreateUploadVideoRequest) (rsp *aliyun.CreateUploadVideoResponse, err error) { | 12 | func CreateUploadVideo(header *protocol.RequestHeader, request *aliyun.CreateUploadVideoRequest) (rsp *aliyun.CreateUploadVideoResponse, err error) { |
| 11 | - var () | 13 | + var ( |
| 14 | + up aliyun.UploadAddress | ||
| 15 | + filePath string | ||
| 16 | + fileName = request.FileName | ||
| 17 | + ) | ||
| 18 | + defer func() { | ||
| 19 | + err = ErrorHandler(err) | ||
| 20 | + }() | ||
| 12 | client, e := aliyun.DefaultVodClient() | 21 | client, e := aliyun.DefaultVodClient() |
| 13 | if e != nil { | 22 | if e != nil { |
| 14 | log.Error(e) | 23 | log.Error(e) |
| 15 | err = e | 24 | err = e |
| 16 | return | 25 | return |
| 17 | } | 26 | } |
| 27 | + if aliyun.ValidFileExt(aliyun.VideoFileExt, request.FileName) { | ||
| 28 | + filePath = utils.GetFileName(header.AppProject, aliyun.FileVideo, request.FileName) | ||
| 29 | + } else if aliyun.ValidFileExt(aliyun.VoiceFileExt, request.FileName) { | ||
| 30 | + filePath = utils.GetFileName(header.AppProject, aliyun.FileVoice, request.FileName) | ||
| 31 | + } else { | ||
| 32 | + err = aliyun.OssErrFileFormat | ||
| 33 | + return | ||
| 34 | + } | ||
| 35 | + request.FileName = filePath | ||
| 36 | + request.Title = filePath | ||
| 18 | rsp, err = aliyun.CreateUploadVideo(client, request) | 37 | rsp, err = aliyun.CreateUploadVideo(client, request) |
| 19 | if err != nil { | 38 | if err != nil { |
| 20 | log.Error(err) | 39 | log.Error(err) |
| 40 | + return | ||
| 41 | + } | ||
| 42 | + if up, err = aliyun.ParseUploadAddress(rsp.UploadAddress); err != nil { | ||
| 43 | + log.Error(err) | ||
| 44 | + return | ||
| 21 | } | 45 | } |
| 46 | + rsp.FileName = fileName | ||
| 47 | + rsp.FileURL = up.GetFileUrl(beego.AppConfig.String("cname")) | ||
| 22 | return | 48 | return |
| 23 | } | 49 | } |
| 24 | 50 | ||
| @@ -50,8 +76,13 @@ func CreateUploadImage(header *protocol.RequestHeader, request *aliyun.CreateUpl | @@ -50,8 +76,13 @@ func CreateUploadImage(header *protocol.RequestHeader, request *aliyun.CreateUpl | ||
| 50 | if len(request.FileName) == 0 { | 76 | if len(request.FileName) == 0 { |
| 51 | request.FileName = aliyun.DefaultImageFileName | 77 | request.FileName = aliyun.DefaultImageFileName |
| 52 | } | 78 | } |
| 79 | + if !aliyun.ValidFileExt(aliyun.ImageFileExt, request.FileName) { | ||
| 80 | + return nil, aliyun.OssErrFileFormat | ||
| 81 | + } | ||
| 82 | + request.Title = utils.GetFileName(header.AppProject, aliyun.FileImage, request.FileName) | ||
| 53 | rsp, err = aliyun.CreateUploadImage(client, request) | 83 | rsp, err = aliyun.CreateUploadImage(client, request) |
| 54 | rsp.FileURL = rsp.ImageURL | 84 | rsp.FileURL = rsp.ImageURL |
| 85 | + rsp.FileName = request.FileName | ||
| 55 | if err != nil { | 86 | if err != nil { |
| 56 | log.Error(err) | 87 | log.Error(err) |
| 57 | } | 88 | } |
-
请 注册 或 登录 后发表评论