FileServer-Spring MVC
A file server is a dedicated machine, typically running on a local network which acts as a shared disk storage for authorized users. The utility of such an application can be increased many-folds by allowing web based public interfaces and dynamic group management for this service. Introduction
In order to provide public interfaces, we are using RESTful Web Services which are based on the REST architecture. These are light-weight, scalable and stateless web services; where the context is maintained by the client and not by the server. These allow you to define APIs with well-define interfaces, which can be shared with anyone publicly, allowing for direct access to the resources.
Features
A Spring based Web App which works using RESTful Web Services. This application will have the following features:
- Following MVC by using Spring MVC.
- Using RESTful webservices(e.g. for file upload use /project/file/upload)
- Authenticatin (login/logout) and Authorize the user using Spring Security.
- CSRF protection
- Allow file sharing between users
- In file upload, when the server receives file, it should divide the file in 5 parts and store these parts and their metadata.
- Provide the user with a unique URL for the resource that can be shared with other users.
- A user can download a file by using the unique URL provided by the uploader.
- In file download the server will first combine the chunks of file and then send the combined single file as a response to the user request.
- Communication will be done using a standard protocol like JSON, XML etc
- Allowing sharing of resources via public links
- Using Hibernate for managing the database
- Loging all activities