Platform: C#, ASP.NET (or other .NET technology), Visual Studio 2010
The web application must provide the following functionality:
- Application is intended to be used by another piece of software by the means of HTTP requests, not by interactive users.
- Application stores files uploaded by client application using HTTP request. Files are delivered either by PUT request (one file) or POST request (multipart/form-data, multiple files in MIME format). Request specifies the folder where files are to be stored, as well file name(s). There are five types of write requests to be implemented (create folder, create multiple folders, add file(s) etc).
- Application returns files requested by client application using HTTP PUT request. Request specifies the folder where files are to be retrieved from, as well file name(s). If entire folder is requested the application returns multiple files in MIME format. There are four types of read requests to be implemented (retrieve file, retrieve content of whole folder, get information on file/folder).
- Application must support multiple simultaneous connections.
- Application must not store entire files in memory.
- Concurrency handling on folder level. If folder is being written then all incoming requests reading the folder must be blocked. If folder is being read then all incoming requests writing the folder must be blocked. Blocked requests must be carried once the bloc is released.
- Command line utility showing the web application at work.
Detailed specification is available. I need the application within 5-10 days.