Cs3 Raw Site

def resolve_ref(ref: str) -> Path: if ref.startswith("path:"): return ROOT / ref[5:] raise HTTPException(400, "Only path: references supported")

@app.delete("/data") def delete(ref: str): path = resolve_ref(ref) if path.is_dir(): path.rmdir() else: path.unlink() return Response(status_code=204) # Upload curl -X PUT -H "Authorization: Bearer $TOKEN" \ --data-binary @file.dat \ "https://storage/cs3/raw/v1/data?ref=path:/backups/file.dat" Download curl -H "Authorization: Bearer $TOKEN" "https://storage/cs3/raw/v1/data?ref=path:/backups/file.dat" -o file.dat Stat curl -H "Authorization: Bearer $TOKEN" "https://storage/cs3/raw/v1/stat?ref=path:/backups/file.dat" 6. Performance Benchmarks Test environment: 2 vCPU, 4GB RAM, NVMe local disk, 1 Gbps network. cs3 raw

| CS3 Raw | Standard CS3 (gRPC) | |--------------------|-------------------------------------| | stat | Stat() | | read | InitiateDownload() + stream | | write | InitiateUpload() + stream | | delete | Delete() | | list | ListContainerStream() | | Bearer token | Opaque token in Authorization | | ref=path:/... | ReferencePath: ... | | ref=id:... | ReferenceResourceId: ... | def resolve_ref(ref: str) -> Path: if ref

Authentication: Authorization: Bearer <opaque-token> (or mutual TLS). GET /stat?ref=path:/home/user/notes.txt or | ReferencePath: