Spaces:
Runtime error
Runtime error
| 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() |