image_cancle.py 2.3 KB
# coding=utf-8
#author:        4N
#createtime:    2021/7/19
#email:         nheweijun@sina.com


from osgeo import gdal,ogr,osr
from osgeo.gdal import Dataset,Band
from app.util.component.ApiTemplate import ApiTemplate
from app.modules.service.image.util.ThriftConnect import ThriftConnect
import json
from .models import Image
import datetime
from app.models import  db
import uuid
import os
from .models import ImageTag
import math

class Api(ApiTemplate):

    api_name = "注册影像数据"

    def process(self):

        #可以注册一个目录
        #返回结果
        res = {}

        try:
            data_server = self.para.get("data_server")
            paths = json.loads(self.para.get("paths"))

            for path in paths:

                exist_image:Image = Image.query.filter_by(path=path.get("path"),
                                                    size=path.get("real_size")).one_or_none()
                if exist_image:
                    servers = exist_image.server.split(",")
                    leave_servers = [ser for ser in servers if not ser.__eq__(data_server)]
                    if len(leave_servers) ==0:
                        db.session.delete(exist_image)
                    else:
                        Image.query.filter_by(path=path.get("path"),
                                              size=path.get("real_size")).update({"server":",".join(leave_servers),
                                                                                  "update_time":datetime.datetime.now()})
                else:
                    raise Exception("数据不存在!")

            db.session.commit()
            res["result"] = True

        except Exception as e:
            raise e

        return res


    api_doc = {
        "tags": ["影像接口"],
        "parameters": [
            {"name": "data_server",
             "in": "formData",
             "type": "string",
             "description": "data_server"},
            {"name": "paths",
             "in": "formData",
             "type": "string",
             "description": "paths"},
        ],
        "responses": {
            200: {
                "schema": {
                    "properties": {
                    }
                }
            }
        }
    }