uploadchecksum

package
v3.3.131 Latest Latest
Warning

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

Go to latest
Published: Jun 4, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultChunkSize = 64 * 1024

	ChecksumAlgorithmCRC32  Algorithm = "CRC32"
	ChecksumAlgorithmCRC32C Algorithm = "CRC32C"

	ContentEncodingAWSChunked             = "aws-chunked"
	ContentSHA256StreamingUnsignedTrailer = "STREAMING-UNSIGNED-PAYLOAD-TRAILER"
)

Variables

View Source
var (
	ErrUnsupportedAlgorithm = errors.New("uploadchecksum: unsupported checksum algorithm")
	ErrChecksumMismatch     = errors.New("uploadchecksum: checksum mismatch")
	ErrMissingChecksum      = errors.New("uploadchecksum: missing checksum trailer")
	ErrMalformedAWSChunked  = errors.New("uploadchecksum: malformed aws-chunked body")
)

Functions

func AWSChunkedEncodedLength

func AWSChunkedEncodedLength(decodedLength int64, chunkSize int, algorithm Algorithm) (int64, error)

func Checksum

func Checksum(p []byte, algorithm Algorithm) (string, error)

func IsAWSChunked

func IsAWSChunked(headers http.Header) bool

func S3TrailerHeaders

func S3TrailerHeaders(options S3TrailerHeadersOptions) (http.Header, int64, error)

Types

type AWSChunkedDecoder

type AWSChunkedDecoder struct {
	// contains filtered or unexported fields
}

func NewAWSChunkedDecoder

func NewAWSChunkedDecoder(source io.Reader, options AWSChunkedDecoderOptions) (*AWSChunkedDecoder, error)

func NewAWSChunkedDecoderForHeaders

func NewAWSChunkedDecoderForHeaders(source io.Reader, headers http.Header) (*AWSChunkedDecoder, error)

func (*AWSChunkedDecoder) Read

func (d *AWSChunkedDecoder) Read(p []byte) (int, error)

func (*AWSChunkedDecoder) TrailerValue

func (d *AWSChunkedDecoder) TrailerValue() string

func (*AWSChunkedDecoder) Verify

func (d *AWSChunkedDecoder) Verify() error

type AWSChunkedDecoderOptions

type AWSChunkedDecoderOptions struct {
	Algorithm Algorithm
}

type AWSChunkedEncoder

type AWSChunkedEncoder struct {
	// contains filtered or unexported fields
}

func NewAWSChunkedEncoder

func NewAWSChunkedEncoder(source io.Reader, options AWSChunkedEncoderOptions) (*AWSChunkedEncoder, error)

func (*AWSChunkedEncoder) Read

func (e *AWSChunkedEncoder) Read(p []byte) (int, error)

type AWSChunkedEncoderOptions

type AWSChunkedEncoderOptions struct {
	Algorithm Algorithm
	ChunkSize int
}

type Algorithm

type Algorithm string

func AlgorithmFromHeaders

func AlgorithmFromHeaders(headers http.Header) (Algorithm, error)

func AlgorithmFromTrailerHeader

func AlgorithmFromTrailerHeader(value string) (Algorithm, error)

func BestAlgorithmForPlatform

func BestAlgorithmForPlatform() Algorithm

func SelectBestAlgorithm

func SelectBestAlgorithm(options BestAlgorithmOptions) (Algorithm, error)

func SupportedS3Algorithms

func SupportedS3Algorithms() []Algorithm

func (Algorithm) NewState

func (a Algorithm) NewState() (State, error)

func (Algorithm) Normalize

func (a Algorithm) Normalize() Algorithm

func (Algorithm) OrBestForPlatform

func (a Algorithm) OrBestForPlatform() Algorithm

func (Algorithm) TrailerHeader

func (a Algorithm) TrailerHeader() (string, error)

type AlgorithmBenchmark

type AlgorithmBenchmark struct {
	Algorithm      Algorithm
	BytesProcessed int64
	Duration       time.Duration
}

func BenchmarkAlgorithms

func BenchmarkAlgorithms(options BestAlgorithmOptions) ([]AlgorithmBenchmark, error)

type BestAlgorithmOptions

type BestAlgorithmOptions struct {
	Candidates []Algorithm
	SampleSize int
	Iterations int
	TiePercent int
}

type S3TrailerHeadersOptions

type S3TrailerHeadersOptions struct {
	Algorithm     Algorithm
	DecodedLength int64
	ChunkSize     int
}

type State

type State struct {
	// contains filtered or unexported fields
}

func (State) Encoded

func (s State) Encoded() (string, error)

func (*State) Write

func (s *State) Write(p []byte) (int, error)

Jump to

Keyboard shortcuts

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