Module: ZipTricks::RemoteUncap

Defined in:
lib/zip_tricks/remote_uncap.rb

Overview

Alows reading the central directory of a remote ZIP file without downloading the entire file. The central directory provides the offsets at which the actual file contents is located. You can then use the Range: HTTP headers to download those entries separately.

Please read the security warning in FileReader VERY CAREFULLY before you use this module.

Class Method Summary collapse

Class Method Details

.files_within_zip_at(uri, reader_class: ZipTricks::FileReader, **options_for_zip_reader) ⇒ Array<ZipTricks::FileReader::ZipEntry>

FileReader when reading files within the remote archive

Parameters:

  • uri (String)

    the HTTP(S) URL to read the ZIP footer from

  • reader_class (Class) (defaults to: ZipTricks::FileReader)

    which class to use for reading

  • options_for_zip_reader (Hash)

    any additional options to give to

Returns:



17
18
19
20
21
# File 'lib/zip_tricks/remote_uncap.rb', line 17

def self.files_within_zip_at(uri, reader_class: ZipTricks::FileReader, **options_for_zip_reader)
  fake_io = ZipTricks::RemoteIO.new(uri)
  reader = reader_class.new
  reader.read_zip_structure(io: fake_io, **options_for_zip_reader)
end