The upload service is one of the key component for PILOT project. It's built using the FastAPI python framework. The main responsibility is to handle the file/folder download from Minio Object Storage. If api reqeusts to download multiple files or folder, the service will combine them as the zip file.
This is an example of how to run the download service locally.
This project is using Poetry to handle the dependencies.
curl -sSL https://install.python-poetry.org | python3 -
-
Clone the project.
git clone https://github.com/PilotDataPlatform/download.git
-
Install dependencies.
poetry install
-
Install any OS level dependencies if needed.
apt install <required_package> brew install <required_package>
-
Add environment variables into
.env
in case it's needed. Use.env.schema
as a reference. -
Run application.
poetry run python run.py
This project can also be started using Docker.
-
To build and start the service within the Docker container, run:
docker compose up
You can contribute the project in following ways:
- Report a bug.
- Suggest a feature.
- Open a pull request for fixing issues or adding functionality. Please consider using pre-commit in this case.
- For general guidelines on how to contribute to the project, please take a look at the contribution guides.
The development of the HealthDataCloud open source software was supported by the EBRAINS research infrastructure, funded from the European Union's Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreement No. 945539 (Human Brain Project SGA3) and H2020 Research and Innovation Action Grant Interactive Computing E-Infrastructure for the Human Brain Project ICEI 800858.