@app.get("/stat") def stat(ref: str): path = resolve_ref(ref) if not path.exists(): raise HTTPException(404) stat = path.stat() return "size": stat.st_size, "mtime": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(stat.st_mtime)), "etag": f""stat.st_mtime-stat.st_size"", "type": "directory" if path.is_dir() else "file"
All values median of 100 runs.
| Operation | CS3 Raw (HTTP) | CS3 full (gRPC+metadata) | Improvement | |-----------|----------------|--------------------------|-------------| | Stat (1000 files) | 210 ms | 890 ms | 4.2x faster | | Write 1 MB | 12 ms | 31 ms | 2.6x faster | | Read 1 MB | 10 ms | 28 ms | 2.8x faster | | List (500 entries) | 85 ms | 312 ms | 3.7x faster | cs3 raw