package shared

import "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/shared"

Index

Constants

const (
	HeaderAuthorization     = "Authorization"
	HeaderXmsDate           = "x-ms-date"
	HeaderContentLength     = "Content-Length"
	HeaderContentEncoding   = "Content-Encoding"
	HeaderContentLanguage   = "Content-Language"
	HeaderContentType       = "Content-Type"
	HeaderContentMD5        = "Content-MD5"
	HeaderIfModifiedSince   = "If-Modified-Since"
	HeaderIfMatch           = "If-Match"
	HeaderIfNoneMatch       = "If-None-Match"
	HeaderIfUnmodifiedSince = "If-Unmodified-Since"
	HeaderRange             = "Range"
	HeaderXmsVersion        = "x-ms-version"
	HeaderXmsRequestID      = "x-ms-request-id"
)
const (
	AppendBlobClient = "azblob/appendblob.Client"
	BlobClient       = "azblob/blob.Client"
	BlockBlobClient  = "azblob/blockblob.Client"
	ContainerClient  = "azblob/container.Client"
	PageBlobClient   = "azblob/pageblob.Client"
	ServiceClient    = "azblob/service.Client"
)
const (
	DefaultConcurrency = 5
)
const (
	TokenScope = "https://storage.azure.com/.default"
)

Variables

var CRC64Table = crc64.MakeTable(crc64Polynomial)

Functions

func CopyOptions

func CopyOptions[T any](opts *T) *T

CopyOptions returns a zero-value T if opts is nil. If opts is not nil, a copy is made and its address returned.

func DoBatchTransfer

func DoBatchTransfer(ctx context.Context, o *BatchTransferOptions) error

DoBatchTransfer helps to execute operations in a batch manner. Can be used by users to customize batch works (for other scenarios that the SDK does not provide)

func GenerateLeaseID

func GenerateLeaseID(leaseID *string) (*string, error)

func GetClientOptions

func GetClientOptions[T any](o *T) *T

func IsIPEndpointStyle

func IsIPEndpointStyle(host string) bool

IsIPEndpointStyle checkes if URL's host is IP, in this case the storage account endpoint will be composed as: http(s)://IP(:port)/storageaccount/container/... As url's Host property, host could be both host or host:port

func NewBytesWriter

func NewBytesWriter(b []byte) bytesWriter

func NewStorageChallengePolicy

func NewStorageChallengePolicy(cred azcore.TokenCredential) policy.Policy

func NopCloser

func NopCloser(rs io.ReadSeeker) io.ReadSeekCloser

NopCloser returns a ReadSeekCloser with a no-op close method wrapping the provided io.ReadSeeker.

func RangeToString

func RangeToString(offset, count int64) string

func SerializeBlobTags

func SerializeBlobTags(tagsMap map[string]string) *generated.BlobTags

SerializeBlobTags converts tags to generated.BlobTags

func SerializeBlobTagsToStrPtr

func SerializeBlobTagsToStrPtr(tagsMap map[string]string) *string

func ValidateSeekableStreamAt0AndGetCount

func ValidateSeekableStreamAt0AndGetCount(body io.ReadSeeker) (int64, error)

Types

type BatchTransferOptions

type BatchTransferOptions struct {
	TransferSize  int64
	ChunkSize     int64
	NumChunks     uint16
	Concurrency   uint16
	Operation     func(ctx context.Context, offset int64, chunkSize int64) error
	OperationName string
}

BatchTransferOptions identifies options used by doBatchTransfer.

type BufferManager

type BufferManager[T ~[]byte] interface {
	// Acquire returns the channel that contains the pool of buffers.
	Acquire() <-chan T

	// Release releases the buffer back to the pool for reuse/cleanup.
	Release(T)

	// Grow grows the number of buffers, up to the predefined max.
	// It returns the total number of buffers or an error.
	// No error is returned if the number of buffers has reached max.
	// This is called only from the reading goroutine.
	Grow() (int, error)

	// Free cleans up all buffers.
	Free()
}

func NewMMBPool

func NewMMBPool(maxBuffers int, bufferSize int64) BufferManager[Mmb]

type Mmb

type Mmb []byte

mmb is a memory mapped buffer

func NewMMB

func NewMMB(size int64) (Mmb, error)

newMMB creates a new memory mapped buffer with the specified size

func (*Mmb) Delete

func (m *Mmb) Delete()

delete cleans up the memory mapped buffer

type ParsedConnectionString

type ParsedConnectionString struct {
	ServiceURL  string
	AccountName string
	AccountKey  string
}

func ParseConnectionString

func ParseConnectionString(connectionString string) (ParsedConnectionString, error)

type SectionWriter

type SectionWriter struct {
	Count    int64
	Offset   int64
	Position int64
	WriterAt io.WriterAt
}

func NewSectionWriter

func NewSectionWriter(c io.WriterAt, off int64, count int64) *SectionWriter

func (*SectionWriter) Write

func (c *SectionWriter) Write(p []byte) (int, error)

Source Files

batch_transfer.go buffer_manager.go bytes_writer.go challenge_policy.go mmf_unix.go section_writer.go shared.go

Version
v1.2.0
Published
Oct 11, 2023
Platform
linux/amd64
Imports
18 packages
Last checked
3 hours ago

Tools for package owners.