Najlepiej jest założyć konto u jakiegoś dużego dostawcy Cloud Storage. Np. w Google Cloud, Azure czy Amazon. Wgrywasz tam swoje pliki a następnie gdy użytkownik będzie chciał pobrać daną książkę wygenerujesz unikalny adres url z bardzo krótkim terminem ważności.
Tu przykład dla Google Cloud:
https://cloud.google.com/storage/docs/access-control/signed-urls
Jedyna wada to "brzydki" adres url do zasobu. Można to obejść stawiając server proxy co zwiększy trochę opłaty.
Możesz także pobierać pliki ze swojego hostingu czy serwera, ale ja osobiście zdecydowanie odradzam. Przy większej ilości pobrań zapcha się serwer. Hostingi - zwłaszcza te najtańsze w ogóle nie są do tego przystosowane.
Co do płatności to najlepiej zerknąć do dokumentacji :)