Was willst du denn erreichen? Bessere Performance auf dem Server?
Dann halte ich diesen Ansatz für falsch, da der Server immer im Moment des Downloads die ganze Arbeit machen muss. Besser wäre es, die Dateien dann zu berechnen, wenn der Server eh kaum was zu tun hat.
aber man weiss ja erst bei Aufruf was berechnet werden soll.(also wie genau die Datei verändert werden soll).
Und wenn der Benutzer den Download dreimal neu startet, weil irgendwas schiefläuft, berechnest du zweimal 50% umsonst .....
Und und jede Möglichkeit zwischenzuspeichern ist wegen der Menge an Möglcihkeiten unmöglich.