Drop any file here. It gets uploaded to R2 via the Worker binding and a public URL is returned. Watch the metadata fly back.
env.BUCKET.put(key, file.stream()) — a native R2 binding, no SDK, no signing. R2 returns success, and the file is immediately accessible at a public URL. No CORS dance, no presigned URL flow, no S3 SDK config. Just one line of Worker code.
Images, PDFs, videos, anything up to 100 MB
uploads/<timestamp>-<filename>