package shared
import "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/internal/shared"
Index ¶
- Constants
- Variables
- func CopyOptions[T any](opts *T) *T
- func DoBatchTransfer(ctx context.Context, o *BatchTransferOptions) error
- func GenerateLeaseID(leaseID *string) (*string, error)
- func GetClientOptions[T any](o *T) *T
- func IsIPEndpointStyle(host string) bool
- func NewBytesWriter(b []byte) bytesWriter
- func NewStorageChallengePolicy(cred azcore.TokenCredential) policy.Policy
- func NopCloser(rs io.ReadSeeker) io.ReadSeekCloser
- func RangeToString(offset, count int64) string
- func SerializeBlobTags(tagsMap map[string]string) *generated.BlobTags
- func SerializeBlobTagsToStrPtr(tagsMap map[string]string) *string
- func ValidateSeekableStreamAt0AndGetCount(body io.ReadSeeker) (int64, error)
- type BatchTransferOptions
- type BufferManager
- type Mmb
- type ParsedConnectionString
- type SectionWriter
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 ¶
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 GetClientOptions ¶
func GetClientOptions[T any](o *T) *T
func IsIPEndpointStyle ¶
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 SerializeBlobTags ¶
SerializeBlobTags converts tags to generated.BlobTags
func SerializeBlobTagsToStrPtr ¶
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 ¶
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 ¶
func ParseConnectionString ¶
func ParseConnectionString(connectionString string) (ParsedConnectionString, error)
type SectionWriter ¶
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-beta.1
- Published
- Sep 18, 2023
- Platform
- darwin/amd64
- Imports
- 18 packages
- Last checked
- 1 hour ago –
Tools for package owners.