perkeep/app/publisher
mpl 1e2d3661b6 pkg/server: give a caching fetcher to downloadhandler
When the DownloadHandler handles a zip archive requests, it writes the
zip archive being built directly to the network response, in order to
avoid writing any of the files to disk or to memory. As a consequence,
as soon as the archive starts being built, if any error reading one of
the files occurs, it can't properly report it to the client as the
response had already started being sent.

In this change, if the DownloadHandler's Fetcher is a caching fetcher,
we try reading all the requested files before starting the zip archive.
As a result, we can error early and properly if any of the files can't
be read. And since the blobs get cached as they are read the first time,
reading them a second time when actually building the archive should not
be too costly.

Change-Id: I6477d82149b08b1db1471ca9ad77fef254929db0
2017-05-15 15:29:07 +02:00
..
js
file.png
fileembed.go
folder.png
gallery.html
jquery.js
main.go
pics.css
publish_test.go
zip.go