Documentation
¶
Index ¶
- Constants
- type Archive
- type ArchiveFactory
- type CompressionMethod
- type DefaultArchiveFactory
- func (e DefaultArchiveFactory) CanOpenScheme(scheme url.Scheme) bool
- func (e DefaultArchiveFactory) Open(ctx context.Context, location url.URL, password string) (Archive, error)
- func (e DefaultArchiveFactory) OpenBytes(ctx context.Context, data []byte, password string) (Archive, error)
- func (e DefaultArchiveFactory) OpenReader(ctx context.Context, reader ReaderAtCloser, size int64, password string, ...) (Archive, error)
- type Entry
- type GCSArchiveFactory
- func (e GCSArchiveFactory) CanOpen(scheme url.Scheme) bool
- func (e GCSArchiveFactory) Open(ctx context.Context, location url.URL, password string) (Archive, error)
- func (e GCSArchiveFactory) OpenBytes(ctx context.Context, data []byte, password string) (Archive, error)
- func (e GCSArchiveFactory) OpenReader(ctx context.Context, reader ReaderAtCloser, size int64, password string, ...) (Archive, error)
- type HTTPArchiveFactory
- func (e HTTPArchiveFactory) CanOpen(scheme url.Scheme) bool
- func (e HTTPArchiveFactory) Open(ctx context.Context, location url.URL, password string) (Archive, error)
- func (e HTTPArchiveFactory) OpenBytes(ctx context.Context, data []byte, password string) (Archive, error)
- func (e HTTPArchiveFactory) OpenReader(ctx context.Context, reader ReaderAtCloser, size int64, password string, ...) (Archive, error)
- type ReaderAtCloser
- type RemoteArchiveConfig
- type RemoteArchiveReader
- func RemoteArchiveReaderFromGCS(handle *storage.ObjectHandle, attrs *storage.ObjectAttrs) RemoteArchiveReader
- func RemoteArchiveReaderFromHTTP(client *http.Client, url url.AbsoluteURL, size int64) RemoteArchiveReader
- func RemoteArchiveReaderFromS3(client *s3.Client, output s3.HeadObjectOutput, input s3.GetObjectInput) RemoteArchiveReader
- type S3ArchiveFactory
- func (e S3ArchiveFactory) CanOpen(scheme url.Scheme) bool
- func (e S3ArchiveFactory) Open(ctx context.Context, location url.URL, password string) (Archive, error)
- func (e S3ArchiveFactory) OpenBytes(ctx context.Context, data []byte, password string) (Archive, error)
- func (e S3ArchiveFactory) OpenReader(ctx context.Context, reader ReaderAtCloser, size int64, password string, ...) (Archive, error)
- type SchemeSpecificArchiveFactory
Constants ¶
const GzipMaxLength = math.MaxUint32
const GzipWrapperLength = 18
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Archive ¶
type Archive interface {
Entries() []Entry // List of all the archived file entries.
Entry(path string) (Entry, error) // Gets the entry at the given `path`.
Close()
}
Represents an immutable archive.
func NewExplodedArchive ¶
type ArchiveFactory ¶
type ArchiveFactory interface {
Open(ctx context.Context, location url.URL, password string) (Archive, error) // Opens an archive from a location.
OpenBytes(ctx context.Context, data []byte, password string) (Archive, error) // Opens an archive from a [data] slice.
OpenReader(ctx context.Context, reader ReaderAtCloser, size int64, password string, minimizeReads bool) (Archive, error) // Opens an archive from a reader.
}
type CompressionMethod ¶ added in v0.5.0
type CompressionMethod uint16
const ( CompressionMethodStore CompressionMethod = CompressionMethod(zip.Store) CompressionMethodDeflate CompressionMethod = CompressionMethod(zip.Deflate) )
type DefaultArchiveFactory ¶
type DefaultArchiveFactory struct {
// contains filtered or unexported fields
}
func NewArchiveFactory ¶
func NewArchiveFactory() DefaultArchiveFactory
func (DefaultArchiveFactory) CanOpenScheme ¶ added in v0.9.0
func (e DefaultArchiveFactory) CanOpenScheme(scheme url.Scheme) bool
CanOpenScheme implements SchemeSpecificArchiveFactory
func (DefaultArchiveFactory) Open ¶
func (e DefaultArchiveFactory) Open(ctx context.Context, location url.URL, password string) (Archive, error)
Open implements ArchiveFactory
func (DefaultArchiveFactory) OpenBytes ¶
func (e DefaultArchiveFactory) OpenBytes(ctx context.Context, data []byte, password string) (Archive, error)
OpenBytes implements ArchiveFactory
func (DefaultArchiveFactory) OpenReader ¶
func (e DefaultArchiveFactory) OpenReader(ctx context.Context, reader ReaderAtCloser, size int64, password string, minimizeReads bool) (Archive, error)
OpenBytes implements ArchiveFactory
type Entry ¶
type Entry interface {
Path() string // Absolute path to the entry in the archive.
Length() uint64 // Uncompressed data length.
CompressedLength() uint64 // Compressed data length.
CompressedAs(compressionMethod CompressionMethod) bool // Whether the entry is compressed using the given method.
Read(start int64, end int64) ([]byte, error) // Reads the whole content of this entry, or a portion when [start] or [end] are specified.
Stream(w io.Writer, start int64, end int64) (int64, error) // Streams the whole content of this entry to a writer, or a portion when [start] or [end] are specified.
StreamCompressed(w io.Writer) (int64, error) // Streams the compressed content of this entry to a writer.
StreamCompressedGzip(w io.Writer) (int64, error) // Streams the compressed content of this entry to a writer in a GZIP container.
ReadCompressed() ([]byte, error) // Reads the compressed content of this entry.
ReadCompressedGzip() ([]byte, error) // Reads the compressed content of this entry inside a GZIP container.
}
Holds an archive entry's metadata.
type GCSArchiveFactory ¶ added in v0.9.0
type GCSArchiveFactory struct {
// contains filtered or unexported fields
}
func NewGCSArchiveFactory ¶ added in v0.9.0
func NewGCSArchiveFactory(client *storage.Client, config RemoteArchiveConfig) GCSArchiveFactory
func (GCSArchiveFactory) CanOpen ¶ added in v0.9.0
func (e GCSArchiveFactory) CanOpen(scheme url.Scheme) bool
CanOpen implements SchemeSpecificArchiveFactory
func (GCSArchiveFactory) Open ¶ added in v0.9.0
func (e GCSArchiveFactory) Open(ctx context.Context, location url.URL, password string) (Archive, error)
Open implements ArchiveFactory
func (GCSArchiveFactory) OpenBytes ¶ added in v0.9.0
func (e GCSArchiveFactory) OpenBytes(ctx context.Context, data []byte, password string) (Archive, error)
OpenBytes implements ArchiveFactory
func (GCSArchiveFactory) OpenReader ¶ added in v0.9.0
func (e GCSArchiveFactory) OpenReader(ctx context.Context, reader ReaderAtCloser, size int64, password string, minimizeReads bool) (Archive, error)
OpenReader implements ArchiveFactory
type HTTPArchiveFactory ¶ added in v0.9.0
type HTTPArchiveFactory struct {
// contains filtered or unexported fields
}
func NewHTTPArchiveFactory ¶ added in v0.9.0
func NewHTTPArchiveFactory(client *http.Client, config RemoteArchiveConfig) HTTPArchiveFactory
func (HTTPArchiveFactory) CanOpen ¶ added in v0.9.0
func (e HTTPArchiveFactory) CanOpen(scheme url.Scheme) bool
CanOpen implements SchemeSpecificArchiveFactory
func (HTTPArchiveFactory) Open ¶ added in v0.9.0
func (e HTTPArchiveFactory) Open(ctx context.Context, location url.URL, password string) (Archive, error)
Open implements ArchiveFactory
func (HTTPArchiveFactory) OpenBytes ¶ added in v0.9.0
func (e HTTPArchiveFactory) OpenBytes(ctx context.Context, data []byte, password string) (Archive, error)
OpenBytes implements ArchiveFactory
func (HTTPArchiveFactory) OpenReader ¶ added in v0.9.0
func (e HTTPArchiveFactory) OpenReader(ctx context.Context, reader ReaderAtCloser, size int64, password string, minimizeReads bool) (Archive, error)
OpenReader implements ArchiveFactory
type RemoteArchiveConfig ¶ added in v0.9.0
type RemoteArchiveConfig struct {
Timeout time.Duration // Timeout for remote requests to read from the archive
CacheAllThreshold int64 // Threshold for caching the entire ZIP
CacheSizeThreshold int64 // Threshold for caching of a single entry in the ZIP
CacheCountThreshold int64 // Threshold for the number of entries in the ZIP to cache
}
func NewDefaultRemoteArchiveConfig ¶ added in v0.9.0
func NewDefaultRemoteArchiveConfig() RemoteArchiveConfig
func (RemoteArchiveConfig) Empty ¶ added in v0.9.0
func (c RemoteArchiveConfig) Empty() bool
type RemoteArchiveReader ¶ added in v0.9.0
type RemoteArchiveReader interface {
Size() int64 // Size of the remote archive object
ReadRange(ctx context.Context, offset, length int64) (io.ReadCloser, error) // Negative length means "read to the end"
}
func RemoteArchiveReaderFromGCS ¶ added in v0.9.0
func RemoteArchiveReaderFromGCS(handle *storage.ObjectHandle, attrs *storage.ObjectAttrs) RemoteArchiveReader
func RemoteArchiveReaderFromHTTP ¶ added in v0.9.0
func RemoteArchiveReaderFromHTTP(client *http.Client, url url.AbsoluteURL, size int64) RemoteArchiveReader
func RemoteArchiveReaderFromS3 ¶ added in v0.9.0
func RemoteArchiveReaderFromS3(client *s3.Client, output s3.HeadObjectOutput, input s3.GetObjectInput) RemoteArchiveReader
type S3ArchiveFactory ¶ added in v0.9.0
type S3ArchiveFactory struct {
// contains filtered or unexported fields
}
func NewS3ArchiveFactory ¶ added in v0.9.0
func NewS3ArchiveFactory(client *s3.Client, config RemoteArchiveConfig) S3ArchiveFactory
func (S3ArchiveFactory) CanOpen ¶ added in v0.9.0
func (e S3ArchiveFactory) CanOpen(scheme url.Scheme) bool
CanOpen implements SchemeSpecificArchiveFactory
func (S3ArchiveFactory) Open ¶ added in v0.9.0
func (e S3ArchiveFactory) Open(ctx context.Context, location url.URL, password string) (Archive, error)
Open implements ArchiveFactory
func (S3ArchiveFactory) OpenBytes ¶ added in v0.9.0
func (e S3ArchiveFactory) OpenBytes(ctx context.Context, data []byte, password string) (Archive, error)
OpenBytes implements ArchiveFactory
func (S3ArchiveFactory) OpenReader ¶ added in v0.9.0
func (e S3ArchiveFactory) OpenReader(ctx context.Context, reader ReaderAtCloser, size int64, password string, minimizeReads bool) (Archive, error)
OpenReader implements ArchiveFactory