Create a signed Cloudinary upload preset that applies a server-side incoming transformation to normalize user-generated uploads before they are stored
domain: cloudinary.com · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Create an upload preset via the Admin API (or console) and set `unsigned: false` so it can only be invoked from trusted server-side code with your API secret
In the preset's transformation settings, define an incoming transformation (e.g. a max width/height crop or format cap) that runs once at upload time rather than on every delivery
Reference the preset name in the `upload_preset` parameter of an upload call instead of repeating transformation parameters in application code
Confirm the stored asset's `bytes`/dimensions in the upload response reflect the incoming transformation, meaning Cloudinary saved the normalized version rather than the original
Combine the incoming transformation with other preset options (folder, tags, allowed formats) to centralize upload governance in one place
Known gotchas
Incoming transformations permanently replace the stored original — Cloudinary does not retain the untransformed file unless you separately configure backup or a raw upload
Incoming transformations are distinct from eager transformations: incoming transforms the asset that gets stored, eager pre-generates additional derived versions of the (already stored) asset
Unsigned presets ignore many restricted parameters for security reasons, so incoming transformations intended to enforce limits should generally live on signed presets used only from your backend
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?