Cloudflare Images Now Available to Everyone
blog.cloudflare.comAh, if only this was fully available ~ 4 months ago.
I transitioned my recipe app with ~ 80,000 images from Cloudinary to a combination of Backblaze B2 + Bunny.net a few months ago. I heavily use the resizing and optimizing features.
It's saved me a ton of money, but if I could have used B2 + Cloudflare with their 0 bandwidth alliance, I could have saved more, I think - haven't done the math though.
In the grand scheme of things, though, I've worked with Bunny now and love the interface, and performance. The one time I contacted support, I spoke 1 on 1 with , I believe, the founder of Bunny. He was cool.
Cloudflare is doing some killer things, excited for that. But glad to see we have small name alternatives to everything (S3 to B2, Cloudflare to Bunny, etc) that can compete on price and functionality.
Good stuff, though! More options the better!
Have you considered imgix? It's like Cloudinary, but with flat pricing per # of origin images. Transformations and bandwidth don't cost extra. It's nice because you don't have to manage yet another stack, just plop in a URL and you're done.
It seems like Cloudflare wants you to predefine all the "variants" (transformations) as specific templates in their GUI, whereas Cloudinary and Imgix are much more flexible and accept specific URL parameters to create those transformations.
EDIT: Actually, Cloudflare supports that too (https://developers.cloudflare.com/image-resizing/url-format), it just wasn't mentioned in this blog post.
imgix is like 5000x more expensive lol
How is it more expensive (than Cloudinary, which the parent was talking about)?
Cloudinary uses a credit system and charges by disk space + bandwidth + transformation calls. Its free plan is metered and only good for up to a small number of monthly visitors.
Imgix charges by # of origin images, regardless of their size, and everything is included free. The free plan is up to 1000 source images and bandwidth/disk space are not charged (though fair use limits prob apply?)
For a fun read here's how we built with in Rust and using our edge compute platform Cloudflare Workers: https://blog.cloudflare.com/building-cloudflare-images-in-ru...
CloudFlare nearly shut down my account for “fraud” because I bought two domain names in a short time period while traveling in a foreign country. I hope they can resolve the mistake of handling customer administration through algorithms rather than humans, because their products are absolutely phenomenal.
Moral of the story is: if you’re going to play around with new features such as this (which I plan on doing!), set up a new account. Always, always compartmentalize.
I really like Cloudflare's product (and even own some shares!), but their fraud/phishing/scam-handling is an issue.
A client of mine got a fraudulent impersonation/phishing-claim (completely ridiculous, the page in question is passive and contains no login ability, no 3rd party scripts besides GA) and CF automatically banned that subpage of the domain. You can appeal to their Trust & Safety team, but they either don't exist or are severely understaffed. It's been a month or so without any feedback, on the forums, people are talking about waiting for six months. Tech support will only "escalate" the issue to T&S where issues go to die.
It's a great way to boot competitors though: file a claim, their visitors will get a scary "Warning: Suspected Phishing Site Ahead!" page they need to actively dismiss, and the site owner can't fix it short or migrating away from CF. I'm guessing enterprise will buy you a direct line to someone who can do something though.
Haha, when I first clicked on the post I was expecting to learn about a new container image registry living right on the edge with cloudflare. Boy was I confused reading the first few paragraphs.
> You pay $5/month for every 100,000 stored images and $1 per 100,000 delivered images. There are no additional resizing, compute or egress costs.
Pricing seems really reasonable, and the resizing feature seems pretty slick.
> $1 per 100,000 delivered images
Breakdown of delivery costs based on your image sizes:
Image size | Total bandwidth used | Effective cost per GB
10MB = 1000GB = $0.001 per GB
5MB = 500GB = $0.002 per GB
1MB = 100GB = $0.01 per GB
200KB = 20GB = $0.05 per GB
50KB = 5GB = $0.2 per GB
Typo on the last one, should be:
50KB = 5GB = $0.20 per GB
Which would make you want to break out the old school spriting tools :) I guess don't serve thumbnail galleries from CF.
IIRC regular cloudflare will still cache assets for free. This tool is specifically for people who don't want to write a pipeline to do image resizing/optimization themselves. If you're able to write your own pipeline to do sprite sheets, you probably don't need this service to begin with. Just preprocess everything yourself and serve those at $0 per gb.
Yes, that makes sense. But it is interesting that this product becomes crazy expensive as the image size gets smaller. $1 per 100,000 served images is a weird pricing model unless you're serving exclusively large images.
This is true but remember, we also have volume pricing. If you're storing tens of millions of images or delivering hundreds of millions of images, talk to us :)
The 'variants' include different sizes, and:
> You only pay for original images; not variants
That's for the storage though. You'll still paying $1 per 100,000 served images, including variants. Which makes small images expensive.
Hm.. the 'Do I get charged for creating and storing variants?' FAQ certainly is, but I was actually looking at the top one 'How much does Cloudflare Images cost?' which is a bit ambiguous:
> Cloudflare Images costs $5 per month per 100,000 stored images and $1 per 100,000 delivered images. Storage must be purchased in advance in blocks of 100,000 images.
> You only pay for original images; not variants. If you have one million original images and define five variants, you would only pay $50 per month for storing your one million original images.
On my first reading I took that to be general, but then the example is about storage... I think you're probably right, I was thinking each served image (or variant) would only be charged once per payment period (because they can cache aggressively) but that'd be really cheap, depending on usage.
It's per "delivered image". I think that it will count each variant as one delivery.
Thanks, fixed
I’m loving it. Cloudflare is a good and reliable service provider, I expect it to expand their cloud offerings in the future like drop-in S3 replacement, application logging, etc…
You never know what might happen. Cloudflare's Birthday Week is 10 days away...
Can we all make wishes? Lol.
I would like to define a pipeline of Workers that get to act on the request / response and count the whole pipeline as a single Worker run as long as I stay within the limits for normal workers. That way I can write composable, reusable workers that perform very specific tasks (like pipes). There could even be a GUI to let me enable / disable parts of the pipeline.
I can do that right now by jamming everything into a single source file, but it would feel better (to me) as a pipeline. It would also be cool if I could stick (headless) Cloudflare apps that are glorified workers into a pipeline like that (at a specific position).
Something that I've found difficult in the Cloudflare ecosystem is understanding the order of execution for everything (access, cache, workers, apps, page rules, etc.). It would be useful to have a dedicated resource that lists that.
Also, the preview pages for every app I've looked at today give an unsafe content warning [1].
A single file is just the deployment, something you don't really have to worry about. Setup your project and source code to have a pipeline with multiple files and libraries as you want, and let the deployment step (with wrangler) wrap up everything and publish it.
I am wondering if Cloudflare is gearing up to be a true competitor to AWS a la GCP and Azure. All it'd take is an EC2-like offering for them to have everything many companies need. You can build out the rest of your managed services (e.g. RDS, ElastiCache, S3) slowly over time.
Cloudflare seems to have a much more cohesive vision for their cloud than AWS does, and I think it could be a competitive advantage for them.
I have to wonder what a fly.io acquisition would look like.
Seems like they are happy with the zero bandwidth alliance for companies like Backblaze to cover that.
Another A+ company Backblaze!
If I serve cloudflare images on my non-cloudflare hosted webpage, would the visitors still occasionally see the injected DDoS protection “checking your browser before accessing” page or would the images just fail to load then? Or is that browser checking disabled if just loading images?
That’s one reason why I haven’t checked out Cloudflare Pages, my (already statically hosted) website will unlikely be DDoSed and I wouldn’t want to impact user experience by adding random browser checks…
The JavaScript Challenge pages only run on dynamic assets, and so won’t impact image assets served.
Beyond that:
• You can turn down the sensitivity of the challenge pages: https://support.cloudflare.com/hc/en-us/articles/200170056-U... • Since Cloudflare Pages is fully hosted on us, we can soak the DDoS and don’t have to worry about letting things through to origin infrastructure. Benefit of serving directly from the edge :-)
(I work at Cloudflare, if that’s not clear)
Great, thanks - I was unaware of such an option.
Is this the same as on Gitlab?
I want something similar to this for favicons. As stupid as that sounds, dealing with favicons is a huge pain. There are so many variants required and every vendor seems to do their own thing.
For example, when you click the share button in Safari on an iPad, it'll download every `link rel="icon"` image you list in html even though it doesn't need them. It would be really awesome to use a worker to inspect the user agent and modify responses to return exactly what's needed for that client.
The pricing for this service won't work for favicons since the cost per response is way too high, but I honestly think it'd be worth $5 / month if I could just upload a SVG favicon for my site and click a button to "Optimize Favicons".
SVG favicons work in every browser except IE and Safari, sigh:
It would be great if they also allowed reverse proxying images directly. I.e. if I could embed an image like this:
<img src="/images/logo.png?size=200,200">
For the customers that enabled Cloudflare proxying, they could automatiacally serve a 200x200px variant of the image hosted on my server at /images/logo.png.
This would allow to use the feature without needing to upload the images explicitely.
For those not using the Cloudflare proxying, the images could be embedded using something like this:
<img src="https://imageproxy.cloudflare.com/mysite.com/images/logo.png...">
This is already supported.
You create a worker that understands your URL scheme, and requests images via Cloudflare with the desired size/parameters: https://developers.cloudflare.com/image-resizing/resizing-wi...
Or, you can just use Cloudflare's built-in URL scheme for resizing arbitrary URLs: https://developers.cloudflare.com/image-resizing/url-format
Indeed. I only read the blog post, where this info is missing. Thank you.
If I understand correctly, then Cloudflare's paradigm is: We have a bunch of polished, simple standard services and if you want to do something slightly different and/or do something on the network you can use Workers.
I think it's pretty smart and empowering as it strikes a nice balance between great, simple DX and high flexibility.
Most of their new products are also built on Workers. Most of them were already possible before, just with more manual work.
Currently "Image Resizing" requires the Business plan or higher, so this strategy will not work for most hobbyist. Seems like enrolling into "Cloudflare Images" does not give a way to use this feature from Workers.
Bunny.net has an alternative: https://bunny.net/optimizer/ It's probably cheaper in some cases.
I use it, it works really well. You don't have to mess around with workers to get it running, either.
I guess the breakeven is ~500k images served each month, otherwise Cloudflare would be cheaper.
Bunny seems like a very nice product. I've never used them, but my perception of them is very positive, for some reason.
As a user for many years, I can confirm it indeed is a nice product. They did however have minor downtimes compared to my previous CloudFront experience, but there are no charges for HTTP requests with Bunny, so it saves a substantial amount from the bill.
Thanks, it's good to hear my perception matches reality!
Images up to 10MB in size.
Aren’t most photos taken by recent phones > 10MB? I know my DSLR pictures certainly are.
Asking out of curiosity. I am not the target audience for this product.
This isn't "store my phone camera roll", it's "deliver images on the Internet".
If you look at https://httparchive.org/reports/state-of-images?lens=top1m&s... for 2021 you'll see images are way smaller than 10MB on the web.
but this is an image resizing service, right? shouldn't you be uploading the highest quality original source?
I would've thought the workflow for these would be to upload a high quality source, and then the service creates lower quality/optimised variants.
I guess you have a limit as it is priced on total images stored and not storage/cpu used...
In a previous life I built a photo sharing community and it was quite common with >10MiB uploads, the limit I set was 25. It’s just as you say, you want the highest possible quality (within reason) for rescale purposes (and 2x monitors like the iMac)
We can support original images that are heavier than 10Mb. Please reach out if you are interested.
We're evaluating this product to replace our self-hosted "resize and deliver images on the Internet" solution and we definitely do have source images over 10mb. I'm not worried about the migration, but this means that going forward we might need our app (or worse our users) have to resize images down before uploading them to the image resizing service. That's a bummer.
EDIT: I just checked, 2.5% of source images are over 10mb.
An easy solution might be to have it accept an upload of a larger file, but automatically scale it down to fit under 10mb and then only store that as the new original.
10mb was a starting default. We may adjust the upload size of original images to the higher limit if there is enough demand for this.
Sure the raw images are large, but websites rarely display images in their original format. Generally for display on websites images are at least compressed if not scaled down significantly.
Here is an example I just pulled off the front page of the NYT website. I'm sure it was originally a 10+MB image taken on a iphone or DSLR but it was compressed/scaled down to a 510kb webp image for display on the web.
https://static01.nyt.com/images/2021/09/17/sports/baseball/1...
The point here though is there’s a file size limit for images you’re uploading. With the 10MB limit you can’t upload your source image for conversion to the example image you linked. You need to do an initial conversion first, which means you’ll introduce more artifacts.
This is an initial launch, so the limit is maximally conservative to avoid promising too much before seeing what customers do with it.
The Cloudflare Image Resizing service this product is based on has been increasing its max size, and it supports 100MB images.
I think the missing piece is proxying from an existing image server source.
Say I have hundreds of gigabytes of images "somewhere". How can I start using that with Cloudflare?
I think this is great for new stuff, or small projects, but for the larger and older projects, it's a non-starter.
The no-storage version of it already exists: https://developers.cloudflare.com/image-resizing/
but when the "somewhere" is S3, AWS egress costs can easily fund Bezos' next space trip. To fix that, Cloudflare now added cheap storage.
Non-starter because you don't want to migrate the images into Cloudflare? I.e. you want the transformation/caching of some non-CDN images via Cloudflare?
Asking as this could look very attractive (£ wise) for a project with images stored in Uploadcare where it would be feasible for us to do the source-image migration.
Assuming 50KB per image, this is about 10 cents per gig pricing. It’s comparable to other CDNs so I guess this is a real price that you can use for business purposes without being hit with a request to become an enterprise customer.
How is this an improvement over existing solutions like imgix?
Incidentally, evaluating an image CDN is my current task at $dayjob. I've been comparing uptimes and, with the caveat that this data is not easy to gather and harder to compare across providers, I just noticed that imgix had twenty-five incidents the past year, mostly "Elevated Rendering Errors". I take it they're a market leader in the image CDN space but that honestly does not inspire confidence in me. Cheaper providers (Imagekit, Sirv) seem to have better reliability.
(Ofc, another caveat is how accurate do they monitor and report, but---short of running customer sentiment analysis---I don't seem to have a choice other than to assume that factor is roughly equal.)
I guess it's a David-to-Goliath comparison but I would just expect Cloudflare to have better reliability than any of them. Plus, as another reply pointed out, brand recognition helps in getting that budget approval.
My company uses Imgix, we're overall pretty happy with it. I'm not sure how we feel about pricing - that's not in my wheelhouse - but it works well for our needs. Our contact there has also been really helpful.
The reliability isn't great though. "Elevated Rendering Errors" almost always is "increased errors rendering uncached derivative images". Basically any image variant - by file and transformation/dimension parameters - that hasn't been viewed recently won't load. So a srcset homepage hero image probably has all size variations a user might see in Imgix's cache, and will render. But on less-traveled parts of our site, photos generally won't load. We're a rather image-heavy site and it's pretty debilitating to the UX when this happens, so it's frustrating that this happens more than the "almost never" rate we'd wish for. FWIW, we've never noticed problems on their end that aren't closely followed by an incident report in their status page, so they're not under-reporting at least.
My experience is similar. It's a fantastic product, with less-than-stellar reliability.
I haven't use imgix but just had a quick look at the docs. It doesn't seem to have the same ability for you to give your users a way to upload their own images in a secure way? If that's the case then that's a big + for Cloudflare.
In general though, CF just nail every version of what they do so I'd personally go with their version of it even if it's the same.
Is being a cloudflare fanboi a thing yet?
> It doesn't seem to have the same ability for you to give your users a way to upload their own images in a secure way?
This can be handled by a CMS. E.g. Media Cloud, a WordPress plugin that integrates with IMGIX.
Technically, no idea.
Coming from an enterprise getting approval to use a new SaaS vendor is painful.
But if a existing vendor has new product offering, you skip a lot of painful TPS style application forms.
A few companies ago I was tasked with replacing imgix at some company to save eight figures a year. Not sure how pricing compares though.
Very cool. Waiting for a version for Video with embeddable widget for uploading.
Do you know how to solve the "embeddable widget" part? I wouldn't like to code myself for the JS uploader (validation, progress bar etc..) but use an external service which gives me the hosted url in return.
Is it possible to tag images?
I have images that can change occasionally and when I upload an image I want to find and delete the previous version so I don't end up with many variations.
Looks like an interesting feature, however I don't like that you can't really create SEO-optimized filenames + the content is hosted on a different domain.
You pay $5/month for every 100,000 stored images and $1 per 100,000 delivered images.
that is for a cache-MISS or a cache-HIT (I assume).Can somebody do the math on pricing vs bunny.net?
Question:
Is there a use case here for an org that stores original, unresized images in S3 and JIT resizes them on the fly with Cloudflare workers?
You can do this with our Image Resizing product (https://developers.cloudflare.com/image-resizing/) but once you start hitting serious volume, the egress costs charged by AWS can add up (to a multiple of what you are paying AWS for the storage itself).
Is this available for free accounts also or just enterprise ones like before ?
Images product is available to all Cloudflare account holders and costs $5/mo to get started.
10MB max per image seems extremely low for 2021.
Not really. The 90th percentile of desktop web pages load less than half that much image data across all images on the page:
https://almanac.httparchive.org/en/2020/page-weight#image-by...
A 10MB limit per image seems like it will cover everything but outliers.
Yeah but that's the limit for the source image, which would you would want to be the best resolution you might ever want to display.
To second that, if your image is over 1MB in 2021, you are probably doing it wrong (unless selling high resolution images).
> We’re just getting started with Cloudflare Images. Here are some of the features we plan to support soon:
> - […]
> - Analytics to better understand your use of Images.
Nice „feature“
heh, every time I have a good idea, Cloudflare always implements them later.
If the images are cached by Cloudflare's CDN, and assuming we have a paid Pro account, are we still billed on each image delivery? How do paid CF plans affect CF Images, if at all?
I'm wondering about this, too.
I have a client with a Cloudflare Pro subscription. They've received about 57 million image requests through Cloudflare in the last month, of which the origin has only served 2 million, and the Cloudflare Cache has served the rest.
If we used Cloudflare Images, would it cost $570 to transfer those 57 million images? Or would the Cloudflare Cache significantly reduce the number of transfers attributed to Cloudflare Images?
You pay per image delivered. They don't use the caching built in to your Pro account.
Cloudflare Images for all customers != Everyone.
I was under the impression that "customer" simply meant any person who makes use of their services.
Are there certain categories of people who CloudFlare refuses to have as customers?
(I know there are SOME -- for example, as a US company CloudFlare is subject to US trade restrictions.)
> Are there certain categories of people who CloudFlare refuses to have as customers?
As you mentioned, anyone on one of the various US sanction lists. Additionally, anything illegal under US law (particularly CSAM, warez and other kinds of piracy), as well as terrorist/violent content (as the "Islamic State", 8chan, Daily Stormer and a select few others found out the hard way).