You can also run a pruned node, basically you download everything and verify it as you go, but once you've computed the utxo set at a given block, you can throw that block away.
Pruned nodes I think are like 2 GB right now? Something in that ballpark.
That actually brings up the idea of sharding which is to assign a node a specific set of transactions and discard the rest. This allows us not to all need an entire record of the blockchain but implementing that into Bitcoin isn't exactly the easiest.
There's no method for sharding the blockchain today which is considered secure, but it is an active area of research.