zipstream

package module
v1.0.0-beta.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 3, 2018 License: BSD-3-Clause Imports: 13 Imported by: 1

README

ZipStream - Reads zip files from io.Reader

Build Status GoDoc Go Report Card Codacy Badge

Doesn't yet support Zip64 archives - see help wanted below.

History

https://github.com/golang/go/issues/10568

Documentation

Overview

Package zipstream provides support for reading ZIP archives through an io.Reader.

Zip64 archives are not yet supported.

Index

Constants

View Source
const (
	Store   uint16 = 0 // no compression
	Deflate uint16 = 8 // DEFLATE compressed
)

Compression methods.

Variables

This section is empty.

Functions

func RegisterDecompressor

func RegisterDecompressor(method uint16, dcomp Decompressor)

RegisterDecompressor allows custom decompressors for a specified method ID. The common methods Store and Deflate are built in.

Types

type Decompressor

type Decompressor func(r io.Reader) io.ReadCloser

A Decompressor returns a new decompressing reader, reading from r. The ReadCloser's Close method must be used to release associated resources. The Decompressor itself must be safe to invoke from multiple goroutines simultaneously, but each returned reader will be used only by one goroutine at a time.

type Reader

type Reader struct {
	io.Reader
	// contains filtered or unexported fields
}

A Reader provides sequential access to the contents of a zip archive. A zip archive consists of a sequence of files, The Next method advances to the next file in the archive (including the first), and then it can be treated as an io.Reader to access the file's data. The Buffered method recovers any bytes read beyond the end of the zip file, necessary if you plan to process anything after it that is not another zip file.

func NewReader

func NewReader(r io.Reader) *Reader

NewReader creates a new Reader reading from r.

func (*Reader) Buffered

func (r *Reader) Buffered() io.Reader

Buffered returns any bytes beyond the end of the zip file that it may have read. These are necessary if you plan to process anything after it, that isn't another zip file.

func (*Reader) Next

func (r *Reader) Next() (*zip.FileHeader, error)

Next advances to the next entry in the zip archive.

io.EOF is returned when the end of the zip file has been reached. If Next is called again, it will presume another zip file immediately follows and it will advance into it.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL