package archive
import "github.com/dotcloud/docker/pkg/archive"
Package archive provides helper functions for dealing with archive files.
Index ¶
- Constants
- Variables
- func ApplyLayer(dest string, layer io.Reader) (int64, error)
- func ApplyUncompressedLayer(dest string, layer io.Reader, options *TarOptions) (int64, error)
- func Changes(layers []string, rw string) ([]archive.Change, error)
- func ChangesDirs(newDir, oldDir string) ([]archive.Change, error)
- func ChangesSize(newDir string, changes []archive.Change) int64
- func CheckSystemDriveAndRemoveDriveLetter(path string) (string, error)
- func CompressStream(dest io.Writer, comp compression.Compression) (io.WriteCloser, error)
- func CopyInfoDestinationPath(path string) (info archive.CopyInfo, err error)
- func CopyInfoSourcePath(path string, followLink bool) (archive.CopyInfo, error)
- func CopyResource(srcPath, dstPath string, followLink bool) error
- func CopyTo(content io.Reader, srcInfo archive.CopyInfo, dstPath string) error
- func DecompressStream(arch io.Reader) (io.ReadCloser, error)
- func DetectCompression(source []byte) archive.Compression
- func ExportChanges(dir string, changes []archive.Change, idMap idtools.IdentityMapping) (io.ReadCloser, error)
- func FileInfoHeader(name string, fi os.FileInfo, link string) (*tar.Header, error)
- func FileInfoHeaderNoLookups(fi os.FileInfo, link string) (*tar.Header, error)
- func Generate(input ...string) (io.Reader, error)
- func GetRebaseName(path, resolvedPath string) (string, string)
- func IsArchivePath(path string) bool
- func IsEmpty(rd io.Reader) (bool, error)
- func NewTarballer(srcPath string, options *TarOptions) (*archive.Tarballer, error)
- func PrepareArchiveCopy(srcContent io.Reader, srcInfo, dstInfo archive.CopyInfo) (dstDir string, content io.ReadCloser, err error)
- func PreserveTrailingDotOrSeparator(cleanedPath string, originalPath string) string
- func ReadSecurityXattrToTarHeader(path string, hdr *tar.Header) error
- func RebaseArchiveEntries(srcContent io.Reader, oldBase, newBase string) io.ReadCloser
- func ReplaceFileTarWrapper(inputTarStream io.ReadCloser, mods map[string]archive.TarModifierFunc) io.ReadCloser
- func ResolveHostSourcePath(path string, followLink bool) (resolvedPath, rebaseName string, _ error)
- func SplitPathDirEntry(path string) (dir, base string)
- func Tar(path string, compression archive.Compression) (io.ReadCloser, error)
- func TarResource(sourceInfo archive.CopyInfo) (content io.ReadCloser, err error)
- func TarResourceRebase(sourcePath, rebaseName string) (content io.ReadCloser, _ error)
- func TarWithOptions(srcPath string, options *TarOptions) (io.ReadCloser, error)
- func ToArchiveOpt(options *TarOptions) *archive.TarOptions
- func Unpack(decompressedArchive io.Reader, dest string, options *TarOptions) error
- func UnpackLayer(dest string, layer io.Reader, options *TarOptions) (size int64, err error)
- func Untar(tarArchive io.Reader, dest string, options *TarOptions) error
- func UntarUncompressed(tarArchive io.Reader, dest string, options *TarOptions) error
- type Archiver
- func NewDefaultArchiver() *Archiver
- func (archiver *Archiver) CopyFileWithTar(src, dst string) (err error)
- func (archiver *Archiver) CopyWithTar(src, dst string) error
- func (archiver *Archiver) IdentityMapping() idtools.IdentityMapping
- func (archiver *Archiver) TarUntar(src, dst string) error
- func (archiver *Archiver) UntarPath(src, dst string) error
- type Change
- type ChangeType
- type Compression
- type CopyInfo
- type FileInfo
- type TarModifierFunc
- type TarOptions
- type Tarballer
- type WhiteoutFormat
Constants ¶
const ( Uncompressed = compression.None // Deprecated: use [compression.None] instead. Bzip2 = compression.Bzip2 // Deprecated: use [compression.Bzip2] instead. Gzip = compression.Gzip // Deprecated: use [compression.Gzip] instead. Xz = compression.Xz // Deprecated: use [compression.Xz] instead. Zstd = compression.Zstd // Deprecated: use [compression.Zstd] instead. )
const ( AUFSWhiteoutFormat = archive.AUFSWhiteoutFormat // Deprecated: use [archive.AUFSWhiteoutFormat] instead. OverlayWhiteoutFormat = archive.OverlayWhiteoutFormat // Deprecated: use [archive.OverlayWhiteoutFormat] instead. )
const ( ChangeModify = archive.ChangeModify // Deprecated: use [archive.ChangeModify] instead. ChangeAdd = archive.ChangeAdd // Deprecated: use [archive.ChangeAdd] instead. ChangeDelete = archive.ChangeDelete // Deprecated: use [archive.ChangeDelete] instead. )
const ( WhiteoutPrefix = archive.WhiteoutPrefix // Deprecated: use [archive.WhiteoutPrefix] instead. WhiteoutMetaPrefix = archive.WhiteoutMetaPrefix // Deprecated: use [archive.WhiteoutMetaPrefix] instead. WhiteoutLinkDir = archive.WhiteoutLinkDir // Deprecated: use [archive.WhiteoutLinkDir] instead. WhiteoutOpaqueDir = archive.WhiteoutOpaqueDir // Deprecated: use [archive.WhiteoutOpaqueDir] instead. )
const ImpliedDirectoryMode = archive.ImpliedDirectoryMode
ImpliedDirectoryMode represents the mode (Unix permissions) applied to directories that are implied by files in a tar, but that do not have their own header entry.
Deprecated: use archive.ImpliedDirectoryMode instead.
Variables ¶
var ( ErrNotDirectory = archive.ErrNotDirectory // Deprecated: use [archive.ErrNotDirectory] instead. ErrDirNotExists = archive.ErrDirNotExists // Deprecated: use [archive.ErrDirNotExists] instead. ErrCannotCopyDir = archive.ErrCannotCopyDir // Deprecated: use [archive.ErrCannotCopyDir] instead. ErrInvalidCopySource = archive.ErrInvalidCopySource // Deprecated: use [archive.ErrInvalidCopySource] instead. )
Functions ¶
func ApplyLayer ¶
ApplyLayer parses a diff in the standard layer format from `layer`, and applies it to the directory `dest`.
Deprecated: use archive.ApplyLayer instead.
func ApplyUncompressedLayer ¶
ApplyUncompressedLayer parses a diff in the standard layer format from `layer`, and applies it to the directory `dest`.
Deprecated: use archive.ApplyUncompressedLayer instead.
func Changes ¶
Changes walks the path rw and determines changes for the files in the path, with respect to the parent layers
Deprecated: use archive.Changes instead.
func ChangesDirs ¶
ChangesDirs compares two directories and generates an array of Change objects describing the changes.
Deprecated: use archive.ChangesDirs instead.
func ChangesSize ¶
ChangesSize calculates the size in bytes of the provided changes, based on newDir.
Deprecated: use archive.ChangesSize instead.
func CheckSystemDriveAndRemoveDriveLetter ¶
CheckSystemDriveAndRemoveDriveLetter verifies that a path is the system drive.
Deprecated: use archive.CheckSystemDriveAndRemoveDriveLetter instead.
func CompressStream ¶
func CompressStream(dest io.Writer, comp compression.Compression) (io.WriteCloser, error)
CompressStream compresses the dest with specified compression algorithm.
Deprecated: use compression.CompressStream instead.
func CopyInfoDestinationPath ¶
CopyInfoDestinationPath stats the given path to create a CopyInfo struct representing that resource for the destination of an archive copy operation.
Deprecated: use archive.CopyInfoDestinationPath instead.
func CopyInfoSourcePath ¶
CopyInfoSourcePath stats the given path to create a CopyInfo struct. struct representing that resource for the source of an archive copy operation.
Deprecated: use archive.CopyInfoSourcePath instead.
func CopyResource ¶
CopyResource performs an archive copy from the given source path to the given destination path.
Deprecated: use archive.CopyResource instead.
func CopyTo ¶
CopyTo handles extracting the given content whose entries should be sourced from srcInfo to dstPath.
Deprecated: use archive.CopyTo instead.
func DecompressStream ¶
func DecompressStream(arch io.Reader) (io.ReadCloser, error)
DecompressStream decompresses the archive and returns a ReaderCloser with the decompressed archive.
Deprecated: use compression.DecompressStream instead.
func DetectCompression ¶
func DetectCompression(source []byte) archive.Compression
DetectCompression detects the compression algorithm of the source.
Deprecated: use compression.Detect instead.
func ExportChanges ¶
func ExportChanges(dir string, changes []archive.Change, idMap idtools.IdentityMapping) (io.ReadCloser, error)
ExportChanges produces an Archive from the provided changes, relative to dir.
func FileInfoHeader ¶
FileInfoHeader creates a populated Header from fi.
Deprecated: use archive.FileInfoHeader instead.
func FileInfoHeaderNoLookups ¶
FileInfoHeaderNoLookups creates a partially-populated tar.Header from fi.
Deprecated: use tarheader.FileInfoHeaderNoLookups instead.
func Generate ¶
Generate generates a new archive from the content provided as input.
Deprecated: use archive.Generate instead.
func GetRebaseName ¶
GetRebaseName normalizes and compares path and resolvedPath.
Deprecated: use archive.GetRebaseName instead.
func IsArchivePath ¶
IsArchivePath checks if the (possibly compressed) file at the given path starts with a tar file header.
Deprecated: use archive.IsArchivePath instead.
func IsEmpty ¶
IsEmpty checks if the tar archive is empty (doesn't contain any entries).
Deprecated: use archive.IsEmpty instead.
func NewTarballer ¶
func NewTarballer(srcPath string, options *TarOptions) (*archive.Tarballer, error)
NewTarballer constructs a new tarballer using TarWithOptions.
Deprecated: use archive.Tarballer instead.
func PrepareArchiveCopy ¶
func PrepareArchiveCopy(srcContent io.Reader, srcInfo, dstInfo archive.CopyInfo) (dstDir string, content io.ReadCloser, err error)
PrepareArchiveCopy prepares the given srcContent archive.
Deprecated: use archive.PrepareArchiveCopy instead.
func PreserveTrailingDotOrSeparator ¶
PreserveTrailingDotOrSeparator returns the given cleaned path.
Deprecated: use archive.PreserveTrailingDotOrSeparator instead.
func ReadSecurityXattrToTarHeader ¶
ReadSecurityXattrToTarHeader reads security.capability xattr from filesystem to a tar header
Deprecated: use archive.ReadSecurityXattrToTarHeader instead.
func RebaseArchiveEntries ¶
func RebaseArchiveEntries(srcContent io.Reader, oldBase, newBase string) io.ReadCloser
RebaseArchiveEntries rewrites the given srcContent archive replacing an occurrence of oldBase with newBase at the beginning of entry names.
Deprecated: use archive.RebaseArchiveEntries instead.
func ReplaceFileTarWrapper ¶
func ReplaceFileTarWrapper(inputTarStream io.ReadCloser, mods map[string]archive.TarModifierFunc) io.ReadCloser
ReplaceFileTarWrapper converts inputTarStream to a new tar stream.
Deprecated: use archive.ReplaceFileTarWrapper instead.
func ResolveHostSourcePath ¶
ResolveHostSourcePath decides real path need to be copied.
Deprecated: use archive.ResolveHostSourcePath instead.
func SplitPathDirEntry ¶
SplitPathDirEntry splits the given path between its directory name and its basename.
Deprecated: use archive.SplitPathDirEntry instead.
func Tar ¶
func Tar(path string, compression archive.Compression) (io.ReadCloser, error)
Tar creates an archive from the directory at `path`, and returns it as a stream of bytes.
Deprecated: use archive.Tar instead.
func TarResource ¶
func TarResource(sourceInfo archive.CopyInfo) (content io.ReadCloser, err error)
TarResource archives the resource described by the given CopyInfo to a Tar archive.
Deprecated: use archive.TarResource instead.
func TarResourceRebase ¶
func TarResourceRebase(sourcePath, rebaseName string) (content io.ReadCloser, _ error)
TarResourceRebase is like TarResource but renames the first path element of items in the resulting tar archive to match the given rebaseName if not "".
Deprecated: use archive.TarResourceRebase instead.
func TarWithOptions ¶
func TarWithOptions(srcPath string, options *TarOptions) (io.ReadCloser, error)
TarWithOptions creates an archive with the given options.
Deprecated: use archive.TarWithOptions instead.
func ToArchiveOpt ¶
func ToArchiveOpt(options *TarOptions) *archive.TarOptions
ToArchiveOpt converts an TarOptions to a archive.TarOptions.
Deprecated: use archive.TarOptions instead, this utility is for internal use to transition to the github.com/moby/go-archive module.
func Unpack ¶
func Unpack(decompressedArchive io.Reader, dest string, options *TarOptions) error
Unpack unpacks the decompressedArchive to dest with options.
Deprecated: use archive.Unpack instead.
func UnpackLayer ¶
UnpackLayer unpack `layer` to a `dest`.
Deprecated: use archive.UnpackLayer instead.
func Untar ¶
func Untar(tarArchive io.Reader, dest string, options *TarOptions) error
Untar reads a stream of bytes from `archive`, parses it as a tar archive, and unpacks it into the directory at `dest`.
Deprecated: use archive.Untar instead.
func UntarUncompressed ¶
func UntarUncompressed(tarArchive io.Reader, dest string, options *TarOptions) error
UntarUncompressed reads a stream of bytes from `tarArchive`, parses it as a tar archive, and unpacks it into the directory at `dest`. The archive must be an uncompressed stream.
Deprecated: use archive.UntarUncompressed instead.
Types ¶
type Archiver ¶
type Archiver struct { Untar func(io.Reader, string, *TarOptions) error IDMapping idtools.IdentityMapping }
Archiver implements the Archiver interface and allows the reuse of most utility functions of this package with a pluggable Untar function. Also, to facilitate the passing of specific id mappings for untar, an Archiver can be created with maps which will then be passed to Untar operations.
Deprecated: use archive.Archiver instead.
func NewDefaultArchiver ¶
func NewDefaultArchiver() *Archiver
NewDefaultArchiver returns a new Archiver without any IdentityMapping
Deprecated: use archive.NewDefaultArchiver instead.
func (*Archiver) CopyFileWithTar ¶
CopyFileWithTar emulates the behavior of the 'cp' command-line for a single file. It copies a regular file from path `src` to path `dst`, and preserves all its metadata.
func (*Archiver) CopyWithTar ¶
CopyWithTar creates a tar archive of filesystem path `src`, and unpacks it at filesystem path `dst`. The archive is streamed directly with fixed buffering and no intermediary disk IO.
func (*Archiver) IdentityMapping ¶
func (archiver *Archiver) IdentityMapping() idtools.IdentityMapping
IdentityMapping returns the IdentityMapping of the archiver.
func (*Archiver) TarUntar ¶
TarUntar is a convenience function which calls Tar and Untar, with the output of one piped into the other. If either Tar or Untar fails, TarUntar aborts and returns the error.
func (*Archiver) UntarPath ¶
UntarPath untar a file from path to a destination, src is the source tar file path.
type Change ¶
type Change = archive.Change
Change represents a change.
Deprecated: use archive.Change instead.
type ChangeType ¶
type ChangeType = archive.ChangeType
ChangeType represents the change
Deprecated: use archive.ChangeType instead.
type Compression ¶
type Compression = compression.Compression
Compression is the state represents if compressed or not.
Deprecated: use compression.Compression instead.
type CopyInfo ¶
type CopyInfo = archive.CopyInfo
CopyInfo holds basic info about the source or destination path of a copy operation.
Deprecated: use archive.CopyInfo instead.
type FileInfo ¶
type FileInfo = archive.FileInfo
FileInfo describes the information of a file.
Deprecated: use archive.FileInfo instead.
type TarModifierFunc ¶
type TarModifierFunc = archive.TarModifierFunc
TarModifierFunc is a function that can be passed to ReplaceFileTarWrapper.
Deprecated: use archive.TarModifierFunc instead.
type TarOptions ¶
type TarOptions struct { IncludeFiles []string ExcludePatterns []string Compression compression.Compression NoLchown bool IDMap idtools.IdentityMapping ChownOpts *idtools.Identity IncludeSourceDir bool // WhiteoutFormat is the expected on disk format for whiteout files. // This format will be converted to the standard format on pack // and from the standard format on unpack. WhiteoutFormat archive.WhiteoutFormat // When unpacking, specifies whether overwriting a directory with a // non-directory is allowed and vice versa. NoOverwriteDirNonDir bool // For each include when creating an archive, the included name will be // replaced with the matching name from this map. RebaseNames map[string]string InUserNS bool // Allow unpacking to succeed in spite of failures to set extended // attributes on the unpacked files due to the destination filesystem // not supporting them or a lack of permissions. Extended attributes // were probably in the archive for a reason, so set this option at // your own peril. BestEffortXattrs bool }
TarOptions wraps the tar options.
Deprecated: use archive.TarOptions instead.
func TarResourceRebaseOpts ¶
func TarResourceRebaseOpts(sourceBase string, rebaseName string) *TarOptions
TarResourceRebaseOpts does not preform the Tar, but instead just creates the rebase parameters to be sent to TarWithOptions.
Deprecated: use archive.TarResourceRebaseOpts instead.
type Tarballer ¶
type Tarballer = archive.Tarballer
Tarballer is a lower-level interface to TarWithOptions.
Deprecated: use archive.Tarballer instead.
type WhiteoutFormat ¶
type WhiteoutFormat = archive.WhiteoutFormat
WhiteoutFormat is the format of whiteouts unpacked
Deprecated: use archive.WhiteoutFormat instead.
Source Files ¶
archive_deprecated.go changes_deprecated.go copy_deprecated.go diff_deprecated.go path_deprecated.go utils.go whiteouts_deprecated.go wrap_deprecated.go
- Version
- v28.1.1+incompatible (latest)
- Published
- Apr 18, 2025
- Platform
- linux/amd64
- Imports
- 7 packages
- Last checked
- 3 minutes ago –
Tools for package owners.