R2 S3 Signature V4 client in
[src/R2/R2Client.php](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/src/R2/R2Client.php)
SQLite mirror, usage ledger, settings, local tags, permission labels,
and signed URL history under
[src/Repository](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/src/Repository)
Simple password auth and CSRF protection
Uploads, folders, sync, copy/move/delete, downloads, presigned URLs,
CORS JSON management, and usage/billing-style summaries
Setup docs in
[README.md](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/README.md)
and config template in
[.env.example](/Users/tyemeclifford/Documents/GH/CloudflareR2-Manager/.env.example)
Important R2 caveat: Cloudflare’s current R2 S3 compatibility docs say
ACLs and object-tagging APIs are not implemented, so the app stores tags
and permission labels locally in SQLite while keeping file bytes on R2.
I used Cloudflare’s official docs for S3 compatibility, presigned URLs,
and CORS.