The presigned PUT URLs were missing the bucket name (only the key), so R2 read 'uploads' as the bucket, returned a 404 with no CORS headers, and the browser reported it as a CORS failure. Switch to path-style so the URL becomes <account>.r2.cloudflarestorage.com/wedding-media/<key>, which R2 recognizes and applies the bucket's CORS policy to. https://claude.ai/code/session_01TPBqgcSJMppgrpiq7fLywL
37 lines
1.0 KiB
TOML
37 lines
1.0 KiB
TOML
name = "stefanieeleandro"
|
|
main = "src/worker.ts"
|
|
compatibility_date = "2026-04-01"
|
|
compatibility_flags = ["nodejs_compat"]
|
|
|
|
[assets]
|
|
directory = "./dist"
|
|
binding = "ASSETS"
|
|
not_found_handling = "single-page-application"
|
|
run_worker_first = true
|
|
|
|
[[d1_databases]]
|
|
binding = "DB"
|
|
database_name = "wedding-db"
|
|
database_id = "81fac13f-00b2-49ec-b7df-bde036849e70"
|
|
migrations_dir = "../api/migrations"
|
|
|
|
[[r2_buckets]]
|
|
binding = "MEDIA"
|
|
bucket_name = "wedding-media"
|
|
|
|
[vars]
|
|
COUPLE_NAMES = "Stefanie & Leandro"
|
|
PUBLIC_BASE_URL = "https://stefanieeleandro.pages.dev"
|
|
S3_REGION = "auto"
|
|
S3_BUCKET = "wedding-media"
|
|
S3_FORCE_PATH_STYLE = "true"
|
|
S3_ENDPOINT = "https://04cc83318332b325076a71c8db5e6c42.r2.cloudflarestorage.com"
|
|
S3_PUBLIC_BASE_URL = "https://pub-e29e475661ee460c99ba6ea01cf26a7c.r2.dev"
|
|
# CF_ACCESS_TEAM, CF_ACCESS_AUD are set after the Cloudflare Access app is created.
|
|
#
|
|
# Secrets (set via dashboard or `wrangler secret put`):
|
|
# S3_ACCESS_KEY_ID
|
|
# S3_SECRET_ACCESS_KEY
|
|
# TURNSTILE_SECRET
|
|
# ALLOWED_ADMIN_EMAILS
|