Question: We're currently trying to optimize our site so the end users get fast response times. One of the areas we are looking at moment is the media served from the Sitecore Media Library.

What settings are available and what techniques can be used to ensure that the media items are both optimized in terms of size?

For example, it's not uncommon for users to upload large high quality 1MB+ images, but the image may only used as a small thumbnail on a related content widget or even when used as a main image on a page, the uploaded image is much larger than the conataining HTML element.

Are there any settings available to "down size" the image for each use or should be instead ensure that the editors upload the correct size image to begin with?

Answer: 
You've got a few options:

**The Simple Option:**

Add a width (see here: [Sitecore Image Parameters](https://briancaos.wordpress.com/2011/02/28/sitecore-image-parameters/)) - the image sizes will be processed. The disadvantage of this approach is that you get a processing hit the first time the image is resized (it then caches the result I believe).

**A more complex option:**

You can build something which farms the images out to a CDN and processes the images within the CDN - you'd have to do quite a bit of heavy bespoke work to get this going but it would be pretty cool :)

**An enterprise option:**

You could use an external DAM to do the heavy lifting for you (something like Picturepark, Asset Bank, EDAM, DigiZuite etc).
If your question re DAM selection is still open then I would recommend to consider building your external asset management based on [Amazon Web Services](https://docs.aws.amazon.com/general/latest/gr/Welcome.html) and then plugging it into Sitecore.

I have recently released an open source module called "External Asset Management in Sitecore" what does all the integration routine, it is available on GitHub [here](https://github.com/kate-orlova/external-asset-management-in-sitecore) and I hope that you will find it helpful.