Hi Gabe Sumner,
Unfortunately at the moment there is no way just to configure the storage of files. However, we are working on a very flexible solution for this that will be released in the future (no exact date at the moment, though).
But, we've come up with a battle plan that will allow you to implement this by yourself (will serve as an excellent material for blog post as well :).
You will need to implement a new Provider for libraries. Now, the good thing is that you can inherit the Default Libraries provider and all that you need to do is implement the OnExecuting event handler.
Here are the step-by-step instructions:
1. Add a new meta field to descriptions (e.g. FileUrl). You'll keep the URL of the file here.
2. Implement the new Provider for libraries. Inherit the default libraries provider.
3. Implement OnExecuting event handler in this new provider.
4. Check for the command names in ExecutingEventArgs
(possibilities "CreateContent", "UpdateContent", "DeleteContent")
5. If "CreateContent" or "UpdateContent" save the binary value of the Content property as a file
somewhere on your disk. (A good idea seems to have one folder, like "storage" or "repository" and
save all the files there, where file name can be a guid or something like that). If "DeleteContent" -
delete the file.
6. Set the content property to null, so that the binary file does not get saved to database
7. Create the url of this file (should be as the one specified in your web.config for the url rewriting settings).
8. Save this url to the metafield you've created in the step 1
Instead of overriding the Provider you can create a new class (e.g. in the App_Code folder) and subscribe to
the static OnExecuting event. If you go this way make sure it's the Libraries provider that fired the event.
Steps 3 - 8 are same.
9. Override Telerik.Cms.Engine.ContentHttpHandler. Basically our HttpHandler gets the url finds the record in the database and serves the binary file. Your should get the url, find the record in database, find the url of the file from meta field, read the file into a binary file and serve it out as a binary.
I hope this make sense. Let us know if you have any additional questions.
the Telerik team