Going to the database repeatedly is slow and operations-heavy. Caching stores recent/frequent data in a faster layer (memory) ...
Get the content size of the ZIP file using a HTTP HEAD request. Get the last 100 bytes using HTTP Range queries (hoping it's enough) to read the end-of-central-directory (EOCD) section. Using the EOCD ...