You can use first use
This block to get the data like download url or content type lenght etc and you can also use CustomDownload Component and there you can use
this block to download file to and also if you use app specific directory then you don’t needs Read and write file permission