auto; other providers may require a region name. Replace placeholders privately.
CORS
Allow the exact UI origin to PUT and GET signed objects. Expose ETag and allow headers used by S3 signing. For R2:Retention
Temporary uploads useposted/uploads/; expire that prefix after one day. Prepared delivery copies use posted/delivery/; expire them after two days. Retain immutable originals in posted/originals/ and normalized, ready videos in posted/media/ for saved drafts and future schedules.
Never use bucket-wide expiry. It can remove files needed by a future scheduled post or saved draft. Back up private retained media alongside PostgreSQL and POSTED_SECRET.