cdn-api / app.py
spmoisa548's picture
Update app.py
816d02c verified
import json
import os
from pathlib import Path
from http.server import BaseHTTPRequestHandler, HTTPServer
# ĐẶT biến này đúng bằng mount path bạn chọn trong Space Settings
MOUNT_PATH = os.getenv("BUCKET_MOUNT_PATH", "/data")
def scan(base: str):
p = Path(base)
if not p.exists():
return {
"exists": False,
"path": base,
"count": 0,
"files": []
}
files = []
for x in sorted(p.rglob("*")):
if x.is_file():
st = x.stat()
files.append({
"path": str(x.relative_to(p)),
"size": st.st_size
})
return {
"exists": True,
"path": base,
"count": len(files),
"files": files
}
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
data = scan(MOUNT_PATH)
body = json.dumps(data, ensure_ascii=False, indent=2).encode("utf-8")
self.send_response(200)
self.send_header("Content-Type", "application/json; charset=utf-8")
self.send_header("Content-Length", str(len(body)))
self.end_headers()
self.wfile.write(body)
def log_message(self, fmt, *args):
print(fmt % args, flush=True)
if __name__ == "__main__":
data = scan(MOUNT_PATH)
print("=== BUCKET_SCAN_START ===", flush=True)
print(json.dumps(data, ensure_ascii=False, indent=2), flush=True)
print("=== BUCKET_SCAN_END ===", flush=True)
HTTPServer(("0.0.0.0", 7860), Handler).serve_forever()