Using Akamai Net Storage for Sitecore Media Items
Sunday, January 23, 2011
This article provides some ideas on how to leverage an externally hosted Media Library, such as, Akamai NetStorage. Click to view the full post.
Web.config changes in the renderField section. The order is very important here. It must go immediately before the Sitecore.Pipelines.RenderField.ExpandLinks processor. If it goes after this, then the links will already be expanded and can't be updated by the Net Storage media URLs.
Add NetStorageMediaProvider.ChangeMediaLinks class in assembly NetStorageMediaProvider.dll
<renderField>
<processor type="Sitecore.Pipelines.RenderField.SetParameters, Sitecore.Kernel"/>
<processor type="Sitecore.Pipelines.RenderField.GetFieldValue, Sitecore.Kernel"/>
<processor type="NetStorageMediaProvider.ChangeMediaLinks, NetStorageMediaProvider"/>
<processor type="Sitecore.Pipelines.RenderField.ExpandLinks, Sitecore.Kernel"/>
<processor type="Sitecore.Pipelines.RenderField.GetImageFieldValue, Sitecore.Kernel"/>
<processor type="Sitecore.Pipelines.RenderField.GetLinkFieldValue, Sitecore.Kernel"/>
<processor type="Sitecore.Pipelines.RenderField.GetInternalLinkFieldValue, Sitecore.Kernel"/>
<processor type="Sitecore.Pipelines.RenderField.GetMemoFieldValue, Sitecore.Kernel"/>
<processor type="Sitecore.Pipelines.RenderField.GetDateFieldValue, Sitecore.Kernel"/>
<processor type="Sitecore.Pipelines.RenderField.GetDocxFieldValue, Sitecore.Kernel"/>
<processor type="Sitecore.Pipelines.RenderField.AddBeforeAndAfterValues, Sitecore.Kernel"/>
<processor type="Sitecore.Pipelines.RenderField.RenderWebEditing, Sitecore.Kernel"/>
</renderField>
Add NetStorageMediaProvider.NetStorageMediaProviderHook to the HOOKS section in the Web.config file. The order of the hooks doesn't matter, but I've added it to be the last hook.
<hook type="NetStorageMediaProvider.NetStorageMediaProviderHook, NetStorageMediaProvider"/>