3518555d1e
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.
21 lines
445 B
Bash
21 lines
445 B
Bash
APP_NAME="R2 Manager"
|
|
APP_PASSWORD="change-me"
|
|
# APP_PASSWORD_HASH="$2y$10$replace-with-password-hash"
|
|
APP_SESSION_NAME="r2_manager_session"
|
|
APP_DEBUG=false
|
|
|
|
R2_ACCOUNT_ID=""
|
|
R2_ACCESS_KEY_ID=""
|
|
R2_SECRET_ACCESS_KEY=""
|
|
R2_BUCKET=""
|
|
R2_REGION="auto"
|
|
R2_ENDPOINT=""
|
|
R2_PATH_STYLE=true
|
|
|
|
# Optional public bucket or custom domain URL, for display/copy links only.
|
|
R2_PUBLIC_URL=""
|
|
|
|
DB_PATH="storage/database/r2-manager.sqlite"
|
|
SYNC_PAGE_LIMIT=1000
|
|
|