(original) (raw)
On Thu, Dec 6, 2012 at 9:58 AM, Vinay Sajip <vinay_sajip@yahoo.co.uk> wrote:
Daniel Holth gmail.com> writes:Sounds good, but can you point to any example code which does this? As I
\> The wheel implementation makes sure all the metadata (the .dist-info directory)
\> is at the end of the .zip archive. It's possible to read the metadata with a
\> single HTTP partial request for the end of the archive without downloading the
\> entire archive.
understand it, for .zip files you have to read the last part of the file to get a
pointer to the directory, then read that to find where each file in the archive
is, then seek to a specific position to read the file contents.
You have to make a maximum of 3 requests: one for the directory pointer, one for the directory, and one for the file you want. It's not particularly difficult to make an HTTP-backed seekable file object to pass to ZipFile() for this purpose but I don't have an example. Normally the last few k of the file will contain all 3 pieces. 8k or 16k would be a good guess.