I read through some similar question, but still have some confuse about my situation.
My website allow user upload huge number of large images (scan pages of book). My server will auto tiling and saving those images. So each page will become 10 thousands of small tiler (each image is 128px*128px, take 2k space). I have about 100GB images, and right now they already fill up all the inode table.
Here is couple of my though and understanding, please correct me if I am wrong.
mysql blob
upside: Don't need worry about inode / directory structure any more.
downside: slow image serving, and may slow down whole database
file system
upside: faster image serving
downside: Slow backup speed, extra directory design, need large inode size (this also means I have to reformat my server disk)
mongoDB BinData with base64 (I am not familiar with this, but it seems to be a good option)
Amazon S3
upside: they take care of everything
downside: need cause money, and lost full control of those images.
(UPDATE: I may not allow to use 3rd party provider, but I will still live this here, since it may be a good solution for other people, according to @Niels suggestion.)
Other Magic Great solution.
So I am wonder which is the best in my situation and why. Thanks for help