I advise caution. For example: recall in the old old days we'd compress everything. Nowadays it is totally pointless compressing anything, since both storage and bandwidth is so fast. (Of course, very very large things may still be with compressing, but that's just an obscure detail.) For a while there, there were still "legacy looking" systems that infuriatingly compressed everything, which was just completely pointless and silly.
In a similar way...
I'd perhaps suggest that for small files, today, it is completely useless allowing the user to "cancel a download".
This is worth considering.
A critical point is that, anything like a download should absolutely be in the background these days.
Here's a critical point. Consider the act of visiting any web page - as you do 1000s of times a day. In every case, it is 'downloading' files - the images.
Note that, of course, those examples of "downloading", there is no opportunity to 'cancel' the download. (There's no little individual menu system, with cancel buttons, for every single one of the dozens of images you download every single time you go to any old web page!) That does even apply to quite large images.
Another example is downloading stuff with your email: most emails clients "just do it" for anything under a few MB. You're only asked if it's bizarrely large.
So, while it might, at first, seem surprising that I recommend "Do not give the user any option to cancel a download, and don't even make the process visible", when you think about it this is becoming the way that computers work.
Note! ... in my opinion ...
An absolutely critical aspect of doing UX is we have to "Keep up with the times". An example I always give: remember (if you're old enough) in ancient history every action on a computer would be accompanied by a (now seen as humorous) confirmation dialog. "Do you really want to save the file?" "Did you actually mean to hit the OK button?" "Are you sure you want to quit the program?" These now seem ridiculous or very quaint. Because new paradigms emerged, such as always-undo, and there-is-no-quit-concept-on-phones, and so on. (Of course obviously there are some exceptionally unusual situations where you still use OK boxes ... "Do you truly want to turn off the nuclear generator?" and conversely there are a few lingering examples where UX designers have, ridiculously, not yet got rid of them. A good example is, even on the latest (end of 2015) OSX, when you "shutdown" there's an idiotic "Are you sure?" box. These days it takes only a tiny amount of time to shutdown/restart, so even if you just shutdown accidentally - who cares? Every single time you see that OK? box it's annoying and silly! You have to explain to young people that it used to take forever to restart a computer, and that's the reason such boxes used to exist.)
But indeed there was a period of 10? years where you'd see software "so old fashioned" that it still included ancient styles "OK?!" dialogs. (Indeed, on say my Mac I sometimes play a particular ancient game, one of the versions of Rail Tycoon, and it has old-old school "Do you really want to quit?!" OK boxes - when you see that on ancient software it brings a nostalgic smile.)
So any event, regarding my "Remember OK boxes?" example, as UX we have to be extremely careful to "move ahead" and not get caught in UX paradigms that have become "humorously out of date".
So, I suggest caution when thinking about this "cancel downloads" issue.
As I say, from the "web page images" example we have indeed entered an era where non-huge downloads are just "invisible" to the user - it's surprising but that example makes one realise this.