A complete drive system built on Google Cloud platform with Spring using AppEngine, Firebase auth, Cloud functions, Cloud Storage.
This repository is a sort of code base for the use of Spring Framework in a serveless way with the aid of other google cloud services. Feel free to reuse our code but remember to cite us in your works.
We provide a video link to see all functionality of the drive.
The project provide the following functionalities:
- Firebase Authentication Login/Logout
- Listening folder
- Mkdir
- Delete dir and content
- Delete file
- Upload file
- Download directory (using zip format using Cloud Function)
The architecture is shown in this figure:

The Download of the zip flow is shown in the figure:

The other functionalities follow the same flow in figure:

To compile the project
- Clone the repository
- Install all maven dependencies
- Install the Google Cloud Platform SDK
- Configure your Google Cloud Platform account with the GCP CLI and do the same for the Firebase API
- You have to replace in code your authentication code otherwise you cannot access to the cloud services
5.1 Firebase Auth token in FirebaseLib constructor in the line .setDatabaseUrl("XXX")
5.2 FileController abstract class init change the byte array with your GCP configuration file.
We provide a documentation (pdf file in the repository root) but it's avaiable in Italian 🇮🇹 language.
We found very hard working with documentation with the huge ammount of API version, a common problem is that find the right maven repository version for the example in documentation.