fix sync webexporter
This commit is contained in:
40
main.py
40
main.py
@@ -28,6 +28,7 @@ from sqlalchemy.orm import Session
|
||||
from fastapi import FastAPI, Response, Form, UploadFile, File, Request
|
||||
import uvicorn
|
||||
from typing import Annotated
|
||||
import pathlib
|
||||
|
||||
|
||||
NEW_REPLICATION_REQUEST = 99
|
||||
@@ -345,14 +346,49 @@ def get_metadata(params, files, url):
|
||||
|
||||
|
||||
def put_object(params, files, url):
|
||||
pass
|
||||
date = datetime.datetime.now()
|
||||
req = ET.fromstring(params['query_data'])
|
||||
obj = req.find('chart')
|
||||
class_id = obj.get('Class')
|
||||
con = OOConnectionParams(scheme, Config.oodb_host, Config.oodb_port, Config.oodb_dbname,
|
||||
Config.oodb_username, Config.oodb_passwd, Config.oodb_schema)
|
||||
ws = OODBWorkspace.ws(Config.oodb_schema)
|
||||
if not ws.isInit():
|
||||
res = ws.init(con)
|
||||
logger.warning(res)
|
||||
fc = ws.featureClass(class_id)
|
||||
feature = fc.createFeature()
|
||||
geom = Polygon.fromExtent(Envelope(0.0, 0.0, 1.0, 1.0, SRFactory.PZ9011()))
|
||||
res = feature.setGeometry(geom)
|
||||
for attr in obj.findall('Attribute'):
|
||||
name = attr.get('name')
|
||||
value = attr.get('value')
|
||||
res &= feature.addAttribute(name, variantFromString(value))
|
||||
|
||||
assert len(files) == 1
|
||||
file = files[0]
|
||||
dir = TemporaryDirectory()
|
||||
with zipfile.ZipFile(file, 'r') as zip_ref:
|
||||
zip_ref.extractall(dir.name)
|
||||
|
||||
fp = pathlib.Path(dir.name)
|
||||
for item in fp.glob('**/*'):
|
||||
if not item.is_file():
|
||||
continue
|
||||
print(item.relative_to(dir.name))
|
||||
print(os.path.getsize(item))
|
||||
upload_file(str(item), uuid4().hex, Config.s3_bucket)
|
||||
|
||||
ws.transaction()
|
||||
res = ws.save()
|
||||
ws.commit(f'Putobject from {params["to"]}')
|
||||
|
||||
|
||||
def apply_commits(params, files, url):
|
||||
logger.warning(params, files, url)
|
||||
assert len(files) == 1
|
||||
file = files[0]
|
||||
dir = TemporaryDirectory[str]
|
||||
dir = TemporaryDirectory()
|
||||
with zipfile.ZipFile(file, 'r') as zip_ref:
|
||||
zip_ref.extractall(dir.name)
|
||||
req = ET.fromstring(params['query_data'])
|
||||
|
||||
Reference in New Issue
Block a user