Documentation ¶
Index ¶
- Variables
- func FlateCompressor(level int) func(w io.Writer) (io.WriteCloser, error)
- func FlateDecompressor() func(r io.Reader) io.ReadCloser
- func StdFlateCompressor(level int) func(w io.Writer) (io.WriteCloser, error)
- func StdFlateDecompressor() func(r io.Reader) io.ReadCloser
- type Archiver
- func (a *Archiver) Archive(files map[string]os.FileInfo) (err error)
- func (a *Archiver) ArchiveWithContext(ctx context.Context, files map[string]os.FileInfo) (err error)
- func (a *Archiver) Close() error
- func (a *Archiver) RegisterCompressor(method uint16, comp zip.Compressor)
- func (a *Archiver) Written() (bytes, entries int64)
- type ArchiverOption
- type Extractor
- func (e *Extractor) Close() error
- func (e *Extractor) Extract() error
- func (e *Extractor) ExtractWithContext(ctx context.Context) (err error)
- func (e *Extractor) Files() []*zip.File
- func (e *Extractor) RegisterDecompressor(method uint16, dcomp zip.Decompressor)
- func (e *Extractor) Written() (bytes, entries int64)
- type ExtractorOption
Constants ¶
This section is empty.
Variables ¶
var ErrMinConcurrency = errors.New("concurrency must be at least 1")
Functions ¶
func FlateCompressor ¶
FlateCompressor returns a pooled performant zip.Compressor configured to a specified compression level. Invalid flate levels will panic.
func FlateDecompressor ¶
func FlateDecompressor() func(r io.Reader) io.ReadCloser
FlateDecompressor returns a pooled performant zip.Decompressor.
func StdFlateCompressor ¶
StdFlateCompressor returns a pooled standard library zip.Compressor configured to a specified compression level. Invalid flate levels will panic.
func StdFlateDecompressor ¶
func StdFlateDecompressor() func(r io.Reader) io.ReadCloser
StdFlateDecompressor returns a pooled standard library zip.Decompressor.
Types ¶
type Archiver ¶
type Archiver struct {
// contains filtered or unexported fields
}
Archiver is an opinionated Zip archiver.
Only regular files, symlinks and directories are supported. Only files that are children of the specified chroot directory will be archived.
Access permissions, ownership (unix) and modification times are preserved.
func NewArchiver ¶
NewArchiver returns a new Archiver.
func (*Archiver) ArchiveWithContext ¶
func (a *Archiver) ArchiveWithContext(ctx context.Context, files map[string]os.FileInfo) (err error)
ArchiveWithContext archives all files, symlinks and directories.
func (*Archiver) RegisterCompressor ¶
func (a *Archiver) RegisterCompressor(method uint16, comp zip.Compressor)
RegisterCompressor registers custom compressors for a specified method ID. The common methods Store and Deflate are built in.
type ArchiverOption ¶
type ArchiverOption func(*archiverOptions) error
ArchiverOption is an option used when creating an archiver.
func WithArchiverConcurrency ¶
func WithArchiverConcurrency(n int) ArchiverOption
WithArchiverConcurrency will set the maximum number of files to be compressed concurrently. The default is GOMAXPROCS.
func WithArchiverMethod ¶
func WithArchiverMethod(method uint16) ArchiverOption
WithArchiverMethod sets the zip method to be used for compressible files.
func WithArchiverOffset ¶
func WithArchiverOffset(n int64) ArchiverOption
WithArchiverOffset sets the offset of the beginning of the zip data. This should be used when zip data is appended to an existing file.
func WithStageDirectory ¶
func WithStageDirectory(dir string) ArchiverOption
WithStageDirectory sets the directory to be used to stage compressed files before they're written to the archive. The default is the directory to be archived.
type Extractor ¶
type Extractor struct {
// contains filtered or unexported fields
}
Extractor is an opinionated Zip file extractor.
Files are extracted in parallel. Only regular files, symlinks and directories are supported. Files can only be extracted to the specified chroot directory.
Access permissions, ownership (unix) and modification times are preserved.
func NewExtractor ¶
func NewExtractor(filename, chroot string, opts ...ExtractorOption) (*Extractor, error)
NewExtractor returns a new extractor.
func (*Extractor) ExtractWithContext ¶
ExtractWithContext extracts files, creates symlinks and directories from the archive.
func (*Extractor) RegisterDecompressor ¶
func (e *Extractor) RegisterDecompressor(method uint16, dcomp zip.Decompressor)
RegisterDecompressor allows custom decompressors for a specified method ID. The common methods Store and Deflate are built in.
type ExtractorOption ¶
type ExtractorOption func(*extractorOptions) error
ExtractorOption is an option used when creating an extractor.
func WithExtractorChownErrorHandler ¶
func WithExtractorChownErrorHandler(fn func(name string, err error) error) ExtractorOption
WithExtractorChownErrorHandler sets an error handler to be called if errors are encountered when trying to preserve ownership of extracted files. Returning nil will continue extraction, returning any error will cause Extract() to error.
func WithExtractorConcurrency ¶
func WithExtractorConcurrency(n int) ExtractorOption
WithExtractorConcurrency will set the maximum number of files being extracted concurrently. The default is GOMAXPROCS.