MCPcopy
hub / github.com/kopia/kopia / CompressorForFile

Method CompressorForFile

snapshot/policy/compression_policy.go:43–68  ·  view source on GitHub ↗

CompressorForFile returns compression name to be used for compressing a given file according to policy, using attributes such as name or size.

(e fs.Entry)

Source from the content-addressed store, hash-verified

41
42// CompressorForFile returns compression name to be used for compressing a given file according to policy, using attributes such as name or size.
43func (p *CompressionPolicy) CompressorForFile(e fs.Entry) compression.Name {
44 ext := filepath.Ext(e.Name())
45 size := e.Size()
46
47 if p.CompressorName == "none" {
48 return ""
49 }
50
51 if v := p.MinSize; v > 0 && size < v {
52 return ""
53 }
54
55 if v := p.MaxSize; v > 0 && size > v {
56 return ""
57 }
58
59 if len(p.OnlyCompress) > 0 && isInSortedSlice(ext, p.OnlyCompress) {
60 return p.CompressorName
61 }
62
63 if isInSortedSlice(ext, p.NeverCompress) {
64 return ""
65 }
66
67 return p.CompressorName
68}
69
70// Merge applies default values from the provided policy.
71func (p *CompressionPolicy) Merge(src CompressionPolicy, def *CompressionPolicyDefinition, si snapshot.SourceInfo) {

Callers 2

uploadFileInternalMethod · 0.80

Calls 3

isInSortedSliceFunction · 0.85
NameMethod · 0.65
SizeMethod · 0.45

Tested by

no test coverage detected