One of the most common walls people hit in n8n workflows is file handling.
You’ve got a binary file - a generated PDF, a processed image, a document - and somewhere downstream you need a URL. Or you need to store it. Or pass it to an external API that doesn’t accept binary.
It sounds simple but the options aren’t obvious, especially for people newer to n8n. Here’s an honest breakdown of what’s actually available and when each one makes sense.
Google Drive / Dropbox
The go-to for most people starting out. Easy to set up, familiar, free tier is generous.
The problem: share links are inconsistent. Some apps accept them fine. Others - Instagram Graph API, most webhooks, anything that does a direct file fetch - choke on them because they’re redirect URLs, not direct file URLs. If your workflow involves passing a file URL to an external API, Drive links will eventually burn you.
Good for: internal workflows, human-in-the-loop approvals, anything where a human is clicking the link rather than an API consuming it.
AWS S3 / Cloudflare R2
The proper solution. Reliable, scalable, direct URLs that work everywhere.
The problem: the setup overhead is real. Bucket policies, IAM roles, CORS configuration, public access settings - it’s a lot of decisions just to host a file temporarily. S3 also has a known socket exhaustion issue in n8n at high volumes where workers can silently hang (worth knowing if you’re running queue mode).
Good for: production workflows at volume, long-term file storage, anything where reliability and control matter more than setup speed.
Cloudinary
Great if you’re working with images specifically - transformations, resizing, format conversion all built in. The free tier is reasonable.
The problem: it’s another account, another API key, and more overhead than most automation workflows actually need. The power is in the image processing, not the hosting. If you just need a URL, you’re paying for features you won’t use.
Good for: image-heavy workflows where you need processing alongside hosting.
imgbb / imgur via HTTP node
The quick and dirty solution. Works in a pinch.
The problem: neither has a native n8n node so you’re configuring HTTP requests manually. imgbb URLs sometimes get rejected by picky APIs because of header issues. Imgur’s API approval process is a pain. Free tier limits sneak up on you.
Good for: quick prototyping, personal projects, workflows where you’re not in production yet.
Full disclosure - I built this one.
Native n8n community node, verified and on n8n cloud. Binary in, CDN URL out. No setup beyond an API key. You can set expiry or keep files permanently.
Good for: workflows where you just need a URL fast and don’t want to leave n8n to configure storage. Not the right call if you need long-term storage at scale or image processing - S3 or Cloudinary will serve you better there.
TLDR; Summary:
-
Just need a URL quickly inside a workflow → imgbb HTTP node or Upload to URL
-
Images with processing needs → Cloudinary
-
Production, scale, long-term storage → S3 or R2
-
Human review steps → Google Drive is fine