Your design is good at this point, but I don't understand what your picture is for the cloud account. Do you wish to upload to your cloud account (and its server farm) or upload to your own server?

In the former case you just need to learn the cloud API (application programming interface) and utilize it from your client application.

In the latter case, you'd be writing server code in a project in your solution (a WCF service app, for example), and then reference that service project from your client project that you've created within the same solution. You are correct.

My favorite web development platform is Silverlight, as it is stateful and closest to desktop development.

RIA services with Silverlight is what I prefer and would do nicely for your requirements. RIA is the service code portion that can provide access to a database on your own server, etc...

http://www.silverlight.net/learn/advanced-techniques/wcf-ria-services/get-started-with-wcf-ria-services

Azure I've not actually inspected thoroughly yet, myself, but with an existing cloud account, you may want to find an Azure API with which to upload files from your client application.

Bing "Azure sample application" for:

http://code.msdn.microsoft.com/windowsazure

Bing "Azure upload application" (and then following links in a forum post) yielded:

http://msdn.microsoft.com/en-us/library/windowsazure/gg651129.aspx

http://support.microsoft.com/kb/323246/en-us
http://www.dbtutorials.com/advanced/fileupload-database-cs.aspx