There are many recommendations on the web how to design user uploads of images to a website (especially, the so-called 'highload') - but these articles describe mainly sites on unix technologies ( one , two ), tons. n LAMP or now more often LEMP.
Actually, typical operations are there? Most often this is something from the set:
- Checking the extension and MIME type of files to be loaded
- Re-saving images with 99% quality (for the user, the difference is not visible, but the task is to remove the malicious code if it is there)
- Reducing the size of file storage - both due to recompression of the image, and due to the removal of meta-information
- Preparation of thumbnails of pictures (on the fly or in advance)
- Saving pictures to the cloud
- Delivery of pictures from fast statics servers (nginx) and often with additional caching (varnish)
Actually, I am most interested in this issue of paragraphs 2-3-4 under c #. On nix-systems there are sets like imagemagick, gd and specialized utilities like jpegtran - and by .net I understand it all comes down to the work of System.Drawing.Bitmap?
I would like to hear what in this plan is from the recommended technologies on c #. The code can not lead, just to understand the general direction, plus links are welcome.