Browse Source

补充ssl文件

yangtaodemon 3 weeks ago
parent
commit
d1eeffc54d
6 changed files with 131 additions and 7 deletions
  1. 0 5
      .env
  2. 1 1
      app/api/vector.py
  3. 12 0
      app/main.py
  4. 1 1
      main.py
  5. 90 0
      ssl/cert.crt
  6. 27 0
      ssl/cert.key

+ 0 - 5
.env

@@ -1,5 +0,0 @@
-DB_HOST=localhost
-DB_PORT=5432
-DB_NAME=testdb
-DB_USER=postgres
-DB_PASSWORD=root

+ 1 - 1
app/api/vector.py

@@ -43,7 +43,7 @@ async def export_vector_data(vector_id: int, db: Session = Depends(get_db)):
         background=BackgroundTasks().add_task(shutil.rmtree, result["temp_dir"]) if "temp_dir" in result else None
         background=BackgroundTasks().add_task(shutil.rmtree, result["temp_dir"]) if "temp_dir" in result else None
     )
     )
 
 
-@router.get("/export/all", summary="导出矢量数据", description="将指定的矢量数据表导出为GeoJSON文件")
+@router.get("/export/{table_name}", summary="导出矢量数据", description="将指定的矢量数据表导出为GeoJSON文件")
 async def export_all_vector_data_api(table_name: str = "vector_data", db: Session = Depends(get_db)):
 async def export_all_vector_data_api(table_name: str = "vector_data", db: Session = Depends(get_db)):
     """导出指定矢量数据表为GeoJSON文件
     """导出指定矢量数据表为GeoJSON文件
     
     

+ 12 - 0
app/main.py

@@ -1,6 +1,7 @@
 from fastapi import FastAPI
 from fastapi import FastAPI
 from .api import vector, raster
 from .api import vector, raster
 from .database import engine, Base
 from .database import engine, Base
+from fastapi.middleware.cors import CORSMiddleware
 
 
 # 创建数据库表
 # 创建数据库表
 Base.metadata.create_all(bind=engine)
 Base.metadata.create_all(bind=engine)
@@ -21,6 +22,17 @@ app = FastAPI(
     ]
     ]
 )
 )
 
 
+# ---------------------------
+# 添加 CORS 配置(关键修改)
+# ---------------------------
+app.add_middleware(
+    CORSMiddleware,
+    allow_origins=["https://soilgd.com"],  # 允许的前端域名(需与前端实际域名一致)
+    allow_methods=["*"],                   # 允许的 HTTP 方法(GET/POST/PUT/DELETE等)
+    allow_headers=["*"],                   # 允许的请求头
+    allow_credentials=True,                # 允许携带 Cookie(如需)
+)
+
 # 注册路由
 # 注册路由
 app.include_router(vector.router, prefix="/api/vector", tags=["vector"])
 app.include_router(vector.router, prefix="/api/vector", tags=["vector"])
 app.include_router(raster.router, prefix="/api/raster", tags=["raster"])
 app.include_router(raster.router, prefix="/api/raster", tags=["raster"])

+ 1 - 1
main.py

@@ -2,4 +2,4 @@ from app.main import app
 
 
 if __name__ == "__main__":
 if __name__ == "__main__":
     import uvicorn
     import uvicorn
-    uvicorn.run(app, host="0.0.0.0", port=8000) 
+    uvicorn.run(app, host="0.0.0.0", port=8000, ssl_keyfile="ssl/cert.key", ssl_certfile="ssl/cert.crt")

+ 90 - 0
ssl/cert.crt

@@ -0,0 +1,90 @@
+-----BEGIN CERTIFICATE-----
+MIIGKTCCBRGgAwIBAgIQB9I4IYgi/DoHq8pW9zttPDANBgkqhkiG9w0BAQsFADBg
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMR8wHQYDVQQDExZSYXBpZFNTTCBUTFMgUlNBIENBIEcx
+MB4XDTI0MTIxNjAwMDAwMFoXDTI1MTIxNTIzNTk1OVowGTEXMBUGA1UEAxMOd3d3
+LnNvaWxnZC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCTLGyZ
+3aWgscSdeNFSdhR9U2trusoUbME5l0IkkI5isxu9CzCVk2WFz6S83wmKODyBOvEA
+koFz9nWwuVkt5gscyeT/VwlZ35O8PZC4JgoCO3+pMcCcMsZG8BQAPdpUL7wZ+MAL
+QHH+rvG3M9YoXF1WjyeR6i5YkduP4MQAPlTAuKkw6POFkKyeoER3rctFwrMESgku
+A1Ou2pb3b1rTNHQSYdqfrLSyuQji6c8vkf5kHC1SnX51bZ73OYAiqqcSaLyEHdVp
+I8j3BzRi8TnpUT0LQ2dFwy34P6gbRJ1bh2DdVVtOcb8UXYtZ3hGqGjxgmcuhnPp9
+gLntl8J5U5T2bqR9AgMBAAGjggMkMIIDIDAfBgNVHSMEGDAWgBQM22yCSQ9KZwq4
+FO56xEhSiOtWODAdBgNVHQ4EFgQUYOFvCobAc+ZrLcFoWlNjMamdX3QwJQYDVR0R
+BB4wHIIOd3d3LnNvaWxnZC5jb22CCnNvaWxnZC5jb20wPgYDVR0gBDcwNTAzBgZn
+gQwBAgEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5jb20vQ1BT
+MA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
+PwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NkcC5yYXBpZHNzbC5jb20vUmFwaWRT
+U0xUTFNSU0FDQUcxLmNybDB2BggrBgEFBQcBAQRqMGgwJgYIKwYBBQUHMAGGGmh0
+dHA6Ly9zdGF0dXMucmFwaWRzc2wuY29tMD4GCCsGAQUFBzAChjJodHRwOi8vY2Fj
+ZXJ0cy5yYXBpZHNzbC5jb20vUmFwaWRTU0xUTFNSU0FDQUcxLmNydDAMBgNVHRMB
+Af8EAjAAMIIBfwYKKwYBBAHWeQIEAgSCAW8EggFrAWkAdQAS8U40vVNyTIQGGcOP
+P3oT+Oe1YoeInG0wBYTr5YYmOgAAAZPPcnsuAAAEAwBGMEQCIDqXUfCVJlEtmrK8
+8tvUIwbMySU06nq+wyQFiAOI1Sg1AiARVyEOEG3/oszKNKVwLRvXzOui0KX2gpT/
+9JXVF/MNfAB3AO08S9boBsKkogBX28sk4jgB31Ev7cSGxXAPIN23Pj/gAAABk89y
+e1AAAAQDAEgwRgIhAOk1S1sKdkPJ69YpEHHO+y6gMlJGzesKKXCpDO1cI7DlAiEA
+1nHguQLPEPl7mFGV5NEO5/Jffxacy78VNYx/0DamwqYAdwDm0jFjQHeMwRBBBtdx
+uc7B0kD2loSG+7qHMh39HjeOUAAAAZPPcnthAAAEAwBIMEYCIQCoLOF4iNFYvWRk
+gK5t4ixr/VUdKhzLBkH/bj1E5g1c1AIhAMaoG7W6gT5aWcggnkeSS7r8HGKa5RX0
+HsZyREciflYTMA0GCSqGSIb3DQEBCwUAA4IBAQCHElF8j9l9mzkOoBGBqOY4aBYk
+578kAvR/TYAZ7/wes0k2fxoAZKGOUT/SOKLsnr5xFrDzSwVrKWhSUhr6wCzcW91/
+6f19fcmlLFmu7TJrEmau6F6aKGyUEKwb/q9OPDFC3qMQ5LYypbIHVG4Bfc1HmIHh
+aS97u8rFbwqbAWBUtQSKk9YYhA/EknTIB14QIGPrle3LZSIbPQiA4oh14ia7rfe+
+D0ZXmY9zAXqCaSr7wOxvVQqzJXnVQQ39w91vuS9RmBp7OkOysxWexFx5ij98qL2J
+VndSYjYLDYkxzLEFB4gNM2Hnum81uLhT4zyeJX6z8kBCAnojReIFuRXq5VAO
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEszCCA5ugAwIBAgIQCyWUIs7ZgSoVoE6ZUooO+jANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
+MjAeFw0xNzExMDIxMjI0MzNaFw0yNzExMDIxMjI0MzNaMGAxCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xHzAdBgNVBAMTFlJhcGlkU1NMIFRMUyBSU0EgQ0EgRzEwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQC/uVklRBI1FuJdUEkFCuDL/I3aJQiaZ6aibRHj
+ap/ap9zy1aYNrphe7YcaNwMoPsZvXDR+hNJOo9gbgOYVTPq8gXc84I75YKOHiVA4
+NrJJQZ6p2sJQyqx60HkEIjzIN+1LQLfXTlpuznToOa1hyTD0yyitFyOYwURM+/CI
+8FNFMpBhw22hpeAQkOOLmsqT5QZJYeik7qlvn8gfD+XdDnk3kkuuu0eG+vuyrSGr
+5uX5LRhFWlv1zFQDch/EKmd163m6z/ycx/qLa9zyvILc7cQpb+k7TLra9WE17YPS
+n9ANjG+ECo9PDW3N9lwhKQCNvw1gGoguyCQu7HE7BnW8eSSFAgMBAAGjggFmMIIB
+YjAdBgNVHQ4EFgQUDNtsgkkPSmcKuBTuesRIUojrVjgwHwYDVR0jBBgwFoAUTiJU
+IBiV5uNu5g/6+rkS7QYXjzkwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsG
+AQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMDQGCCsGAQUFBwEB
+BCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEIGA1Ud
+HwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEds
+b2JhbFJvb3RHMi5jcmwwYwYDVR0gBFwwWjA3BglghkgBhv1sAQEwKjAoBggrBgEF
+BQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzALBglghkgBhv1sAQIw
+CAYGZ4EMAQIBMAgGBmeBDAECAjANBgkqhkiG9w0BAQsFAAOCAQEAGUSlOb4K3Wtm
+SlbmE50UYBHXM0SKXPqHMzk6XQUpCheF/4qU8aOhajsyRQFDV1ih/uPIg7YHRtFi
+CTq4G+zb43X1T77nJgSOI9pq/TqCwtukZ7u9VLL3JAq3Wdy2moKLvvC8tVmRzkAe
+0xQCkRKIjbBG80MSyDX/R4uYgj6ZiNT/Zg6GI6RofgqgpDdssLc0XIRQEotxIZcK
+zP3pGJ9FCbMHmMLLyuBd+uCWvVcF2ogYAawufChS/PT61D9rqzPRS5I2uqa3tmIT
+44JhJgWhBnFMb7AGQkvNq9KNS9dd3GWc17H/dXa1enoxzWjE0hBdFjxPhUb0W3wi
+8o34/m8Fxw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEfjCCA2agAwIBAgIQD+Ayq4RNAzEGxQyOE8iwaDANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0yNDAxMTgwMDAwMDBaFw0zMTExMDkyMzU5NTlaMGExCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
+2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
+1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
+q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
+tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
+vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo4IBMDCC
+ASwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUTiJUIBiV5uNu5g/6+rkS7QYX
+jzkwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDgYDVR0PAQH/BAQD
+AgGGMHQGCCsGAQUFBwEBBGgwZjAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZGln
+aWNlcnQuY24wPwYIKwYBBQUHMAKGM2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNu
+L0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNydDBABgNVHR8EOTA3MDWgM6Axhi9odHRw
+Oi8vY3JsLmRpZ2ljZXJ0LmNuL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDARBgNV
+HSAECjAIMAYGBFUdIAAwDQYJKoZIhvcNAQELBQADggEBAHRBl3jN7+XHBUK0dZnu
+hMdoNwD1nCROU3BTIh1TNzRI0bQ0m5+C/dCRzzlqoSAFHUlOi+OiDltWkXTzmQn6
+Z8bH5PFBy5sYpc/8cNPoSzhyqcpvvEZvv/Ivc0Up+dzma7vBDJC9WrMRUUlSFSQp
+kdXSmphDNkXJsgARmxzc18IN6LYMRiOWlY7RE2F900pPW60BvJHHNCX0bbSRj/Ql
+bmVq8wuftBD++D+RS8K++ujpMjFBROyWfBX+woQDGsMazkmgulQdnZrdj476elOL
+axRvrSgEorju1kJM7M65z2RUZrfzQYW/1rs8mRUXin6iEtad/Rv1ZI1WGYmWPyBm
+pbo=
+-----END CERTIFICATE-----

+ 27 - 0
ssl/cert.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEowIBAAKCAQEAkyxsmd2loLHEnXjRUnYUfVNra7rKFGzBOZdCJJCOYrMbvQsw
+lZNlhc+kvN8Jijg8gTrxAJKBc/Z1sLlZLeYLHMnk/1cJWd+TvD2QuCYKAjt/qTHA
+nDLGRvAUAD3aVC+8GfjAC0Bx/q7xtzPWKFxdVo8nkeouWJHbj+DEAD5UwLipMOjz
+hZCsnqBEd63LRcKzBEoJLgNTrtqW929a0zR0EmHan6y0srkI4unPL5H+ZBwtUp1+
+dW2e9zmAIqqnEmi8hB3VaSPI9wc0YvE56VE9C0NnRcMt+D+oG0SdW4dg3VVbTnG/
+FF2LWd4Rqho8YJnLoZz6fYC57ZfCeVOU9m6kfQIDAQABAoIBACzs6yve5o/SpB+j
+wVYIOIH3RHvKtaQdfLBdVXH+9I/5d7ax4z9NkriRpYqIFQvt1b5nJSlVD5I8AjoT
+oj7qEatUkARH59FY9+qG6pXj+rsquXIG/3JO54rA/4IBX5PCTIurDMiCgCnL8npH
+pxCD/XQOV/hpQYOE5r6ZUIt4e3umjDKgCGBwwNM622HDA2urhs/UWUNRWHVqI73E
+fY3MZjmliOvcVS0e8UIogKCu9d16tZm58tk8nhgO+WrOoXSLQPG82CrjBNu+zcFL
+R8uOX726MORav2CxLOdzKQqdeB3eNVhF5sgKUbMNcDKIkbpiDpg8z65odmBDiJO8
+Ks+Fd2sCgYEAtfRYNaxkHE2Rncb/RiTFktGucCsx2LJHXzRyMToZylxN3JNdQRI7
+qStAMh1mskROJr3sW5VSk8MJIsrGF5MEuwrpC91lWu5dDdcZey9BjukGeZ2zPME+
+uQapa0e0Gt/S4zYMSdy2odA6VbcP8XONF07HNf/eEjTk6YSU4x7h/kMCgYEAzxCr
+pw7iuYI7VcOBtfh+t0mexsTjaUD28FU5YO0lSKFRodTis0b2y3tRQbBdT9EZXSzp
+bvK38zIGg5hFc78IAW9oJAolJoLMcFEUsy4Y+r0Th7tgdGlbbEk7Hqe+/pGcqSnk
+cWyJ37y4rCPCZ7Sz/JaCqxFX41mlw97SR3S+hj8CgYAWmuqykF5HneNvZJ+mST86
+hE5VpSgmMc/oJg3hy8QUfe82biBxyyAaXkM1dq2hjBbhfUr1/dEqhlqGNgbyOtOl
+oS9ex/yllWN+KrEButc8N/sT9OGltKRkPE2kBF590DzU+YwBSShvZf05VOroJmDq
++mCJduZSALxHvq74oIeXHQKBgQDFe3i6k4/YrUQ5v4RuMNlppWUw3YamU7cv75gR
+wRrV8kUQuyCbKwsldi9BHxtfjGVMYBEiJ4sY/pUH3Kogggj4lXAVLzfPSuAAHtRH
+L6fTO5Ds2uBbJkBzPkSMMCAQWn+3NqURKBs2r57RTimTDty6AjINRTU1N8LI1DJo
+xAcRsQKBgEqCjoKFFHsH97tdtZeUXwbv9BZMzS/qUa+AvazqzpexhnOzlLVbKJzI
+HXLvAsm9VpzoRr7HKBLO3bOfmULhuO5r9Plu2L05tEPjJ8fkQ3YmBUKFGPTFKosA
+q0qdZLhofebh+HFlc5cBqU0MC9+JOgp2wdOpZGrshqKIua8PUxNc
+-----END RSA PRIVATE KEY-----