introduce images.tldraw.xyz image optimisation worker (#4069)

Fixes asset loading/processing on staging/previews by introducing a new
image processing worker. This worker acts as a proxy for our various
image hosts and resizes/optimizes/caches images on the fly. Like the old
bookmark worker, this one is deployed in an ad-hoc fashion as it works
across environments and we're not likely to change it often.

### Change type

- [x] `other`
This commit is contained in:
alex 2024-07-08 17:25:53 +01:00 committed by GitHub
parent e3cdf34007
commit cbac3ad3d0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 289 additions and 130 deletions

View file

@ -29,30 +29,30 @@ const dotcom = path.relative(process.cwd(), path.resolve(__dirname, '../apps/dot
// `env` instead. This makes sure that all required env vars are present.
const env = makeEnv([
'APP_ORIGIN',
'ASSET_UPLOAD',
'ASSET_UPLOAD_SENTRY_DSN',
'ASSET_BUCKET_ORIGIN',
'ASSET_UPLOAD',
'CLOUDFLARE_ACCOUNT_ID',
'CLOUDFLARE_API_TOKEN',
'DISCORD_DEPLOY_WEBHOOK_URL',
'DISCORD_HEALTH_WEBHOOK_URL',
'HEALTH_WORKER_UPDOWN_WEBHOOK_PATH',
'GC_MAPS_API_KEY',
'GH_TOKEN',
'HEALTH_WORKER_UPDOWN_WEBHOOK_PATH',
'IMAGE_WORKER',
'MULTIPLAYER_SERVER',
'R2_ACCESS_KEY_ID',
'R2_ACCESS_KEY_SECRET',
'RELEASE_COMMIT_HASH',
'SENTRY_AUTH_TOKEN',
'SENTRY_DSN',
'SENTRY_CSP_REPORT_URI',
'SENTRY_DSN',
'SUPABASE_LITE_ANON_KEY',
'SUPABASE_LITE_URL',
'TLDRAW_ENV',
'VERCEL_PROJECT_ID',
'VERCEL_ORG_ID',
'VERCEL_PROJECT_ID',
'VERCEL_TOKEN',
'WORKER_SENTRY_DSN',
'MULTIPLAYER_SERVER',
'GH_TOKEN',
'R2_ACCESS_KEY_ID',
'R2_ACCESS_KEY_SECRET',
])
const discord = new Discord({
@ -148,6 +148,7 @@ async function prepareDotcomApp() {
ASSET_UPLOAD: previewId
? `https://${previewId}-tldraw-assets.tldraw.workers.dev`
: env.ASSET_UPLOAD,
IMAGE_WORKER: env.IMAGE_WORKER,
MULTIPLAYER_SERVER: previewId
? `https://${previewId}-tldraw-multiplayer.tldraw.workers.dev`
: env.MULTIPLAYER_SERVER,