remove temp probe
Browse files- Dockerfile +0 -3
- app.py +0 -25
Dockerfile
DELETED
|
@@ -1,3 +0,0 @@
|
|
| 1 |
-
FROM python:3.12-slim
|
| 2 |
-
COPY app.py /app.py
|
| 3 |
-
CMD ["python", "/app.py"]
|
|
|
|
|
|
|
|
|
|
|
|
app.py
DELETED
|
@@ -1,25 +0,0 @@
|
|
| 1 |
-
# 临时出口探针:只转发到 mp-staging.kaggle.net / ipinfo.io,Kaggle key 放 X-Kaggle-Auth
|
| 2 |
-
import json, os, hmac, urllib.request, urllib.error
|
| 3 |
-
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
| 4 |
-
ALLOWED = ("https://mp-staging.kaggle.net/", "https://ipinfo.io/", "https://api.kaggle.com/v1/models.ModelProxyApiService/")
|
| 5 |
-
class H(BaseHTTPRequestHandler):
|
| 6 |
-
def _go(self, method):
|
| 7 |
-
if not hmac.compare_digest(self.headers.get("X-Probe", ""), os.environ.get("PROBE_SECRET", "-")):
|
| 8 |
-
self.send_response(401); self.end_headers(); return
|
| 9 |
-
target = self.headers.get("X-Target", "")
|
| 10 |
-
if not target.startswith(ALLOWED):
|
| 11 |
-
self.send_response(404); self.end_headers(); return
|
| 12 |
-
body = self.rfile.read(int(self.headers.get("Content-Length") or 0)) if method == "POST" else None
|
| 13 |
-
hdr = {"Content-Type": "application/json"}
|
| 14 |
-
if self.headers.get("X-Kaggle-Auth"): hdr["Authorization"] = self.headers["X-Kaggle-Auth"]
|
| 15 |
-
req = urllib.request.Request(target, data=body, headers=hdr, method=method)
|
| 16 |
-
try:
|
| 17 |
-
with urllib.request.urlopen(req, timeout=90) as r: code, data = r.status, r.read()
|
| 18 |
-
except urllib.error.HTTPError as e: code, data = e.code, e.read()
|
| 19 |
-
except Exception as e: code, data = 599, str(e).encode()
|
| 20 |
-
self.send_response(code); self.send_header("Content-Type", "application/json"); self.end_headers(); self.wfile.write(data)
|
| 21 |
-
def do_GET(self):
|
| 22 |
-
if self.path == "/": self.send_response(200); self.end_headers(); self.wfile.write(b"ok"); return
|
| 23 |
-
self._go("GET")
|
| 24 |
-
def do_POST(self): self._go("POST")
|
| 25 |
-
ThreadingHTTPServer(("0.0.0.0", 7860), H).serve_forever()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|