Implement a RESTFul API spring-boot application that provides the following APIs:
- API to upload a file with a few meta-data fields. Persist meta-data in persistence store (In memory DB or file system and store the content on a file system)
- API to get file meta-data
- (Optional) API to download content stream
- (Optional) API to search for file IDs with a search criterion
- (Optional) Write a scheduler in the same app to poll for new items in the last hour and send an email