or run

tessl search
Log in

Version

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
golangpkg:golang/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob@v1.6.4

docs

appendblob.mdblob.mdblockblob.mdclient.mdcontainer.mderrors.mdindex.mdlease.mdpageblob.mdsas.mdservice.md
tile.json

tessl/golang-github-com--azure--azure-sdk-for-go--sdk--storage--azblob

tessl install tessl/golang-github-com--azure--azure-sdk-for-go--sdk--storage--azblob@1.6.0

Azure Blob Storage SDK for Go providing comprehensive blob storage operations including uploads, downloads, container management, and advanced features like leases and SAS generation

blob.mddocs/

Generic Blob Client (blob.Client)

The blob client handles operations common to all blob types including properties, metadata, tags, downloads, copying, snapshots, and deletion.

Package Import

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

Client Type

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

Constructors

func NewClient(blobURL string, cred azcore.TokenCredential, options *ClientOptions) (*Client, error)
func NewClientWithSharedKeyCredential(blobURL string, cred *SharedKeyCredential, options *ClientOptions) (*Client, error)
func NewClientFromConnectionString(connectionString, containerName, blobName string, options *ClientOptions) (*Client, error)
func NewClientWithNoCredential(blobURL string, options *ClientOptions) (*Client, error)

URL and Client Variants

func (c *Client) URL() string
func (c *Client) WithSnapshot(snapshot string) (*Client, error)
func (c *Client) WithVersionID(versionID string) (*Client, error)

Properties and Metadata

func (c *Client) GetProperties(ctx context.Context, options *GetPropertiesOptions) (GetPropertiesResponse, error)
func (c *Client) SetHTTPHeaders(ctx context.Context, httpHeaders HTTPHeaders, o *SetHTTPHeadersOptions) (SetHTTPHeadersResponse, error)
func (c *Client) SetMetadata(ctx context.Context, metadata map[string]*string, o *SetMetadataOptions) (SetMetadataResponse, error)
func (c *Client) GetTags(ctx context.Context, options *GetTagsOptions) (GetTagsResponse, error)
func (c *Client) SetTags(ctx context.Context, tags map[string]string, options *SetTagsOptions) (SetTagsResponse, error)
func (c *Client) GetAccountInfo(ctx context.Context, o *GetAccountInfoOptions) (GetAccountInfoResponse, error)

HTTPHeaders

type HTTPHeaders struct {
    BlobContentType        *string
    BlobContentEncoding    *string
    BlobContentLanguage    *string
    BlobContentMD5         []byte
    BlobCacheControl       *string
    BlobContentDisposition *string
}

Blob Operations

func (c *Client) Delete(ctx context.Context, o *DeleteOptions) (DeleteResponse, error)
func (c *Client) Undelete(ctx context.Context, o *UndeleteOptions) (UndeleteResponse, error)
func (c *Client) CreateSnapshot(ctx context.Context, options *CreateSnapshotOptions) (CreateSnapshotResponse, error)
func (c *Client) SetTier(ctx context.Context, tier AccessTier, o *SetTierOptions) (SetTierResponse, error)

Copy Operations

// Synchronous copy from URL
func (c *Client) CopyFromURL(ctx context.Context, copySource string, options *CopyFromURLOptions) (CopyFromURLResponse, error)

// Asynchronous copy from URL
func (c *Client) StartCopyFromURL(ctx context.Context, copySource string, options *StartCopyFromURLOptions) (StartCopyFromURLResponse, error)

// Abort copy operation
func (c *Client) AbortCopyFromURL(ctx context.Context, copyID string, options *AbortCopyFromURLOptions) (AbortCopyFromURLResponse, error)

Download Operations

// Download as stream
func (c *Client) DownloadStream(ctx context.Context, o *DownloadStreamOptions) (DownloadStreamResponse, error)

// Download to buffer
func (c *Client) DownloadBuffer(ctx context.Context, buffer []byte, o *DownloadBufferOptions) (int64, error)

// Download to file
func (c *Client) DownloadFile(ctx context.Context, file *os.File, o *DownloadFileOptions) (int64, error)

Download Options

type DownloadStreamOptions struct {
    Range            HTTPRange
    AccessConditions *AccessConditions
    CPKInfo          *CPKInfo
    CPKScopeInfo     *CPKScopeInfo
}

type DownloadBufferOptions struct {
    Range            HTTPRange
    Concurrency      uint16
    BlockSize        int64
    AccessConditions *AccessConditions
    CPKInfo          *CPKInfo
    CPKScopeInfo     *CPKScopeInfo
}

type DownloadFileOptions struct {
    Range            HTTPRange
    Concurrency      uint16
    BlockSize        int64
    AccessConditions *AccessConditions
    CPKInfo          *CPKInfo
    CPKScopeInfo     *CPKScopeInfo
}

HTTPRange

type HTTPRange struct {
    Offset int64
    Count  int64
}

Immutability and Legal Hold

func (c *Client) SetImmutabilityPolicy(ctx context.Context, expiryTime time.Time, options *SetImmutabilityPolicyOptions) (SetImmutabilityPolicyResponse, error)
func (c *Client) DeleteImmutabilityPolicy(ctx context.Context, options *DeleteImmutabilityPolicyOptions) (DeleteImmutabilityPolicyResponse, error)
func (c *Client) SetLegalHold(ctx context.Context, legalHold bool, options *SetLegalHoldOptions) (SetLegalHoldResponse, error)

SAS Generation

func (c *Client) GetSASURL(permissions sas.BlobPermissions, expiry time.Time, o *GetSASURLOptions) (string, error)

Constants

const (
    DefaultDownloadBlockSize int64 = 4 * 1024 * 1024
    DefaultConcurrency       uint16 = 5
    CountToEnd               int64 = 0
    SnapshotTimeFormat       = "2006-01-02T15:04:05.0000000Z07:00"
)

Enums

Access Tier

type AccessTier string

const (
    AccessTierArchive AccessTier = "Archive"
    AccessTierCool    AccessTier = "Cool"
    AccessTierCold    AccessTier = "Cold"
    AccessTierHot     AccessTier = "Hot"
    AccessTierP4      AccessTier = "P4"
    AccessTierP6      AccessTier = "P6"
    AccessTierP10     AccessTier = "P10"
    AccessTierP15     AccessTier = "P15"
    AccessTierP20     AccessTier = "P20"
    AccessTierP30     AccessTier = "P30"
    AccessTierP40     AccessTier = "P40"
    AccessTierP50     AccessTier = "P50"
    AccessTierP60     AccessTier = "P60"
    AccessTierP70     AccessTier = "P70"
    AccessTierP80     AccessTier = "P80"
    AccessTierPremium AccessTier = "Premium"
)

Blob Type

type BlobType string

const (
    BlobTypeBlockBlob  BlobType = "BlockBlob"
    BlobTypePageBlob   BlobType = "PageBlob"
    BlobTypeAppendBlob BlobType = "AppendBlob"
)

Copy Status

type CopyStatusType string

const (
    CopyStatusTypePending CopyStatusType = "pending"
    CopyStatusTypeSuccess CopyStatusType = "success"
    CopyStatusTypeAborted CopyStatusType = "aborted"
    CopyStatusTypeFailed  CopyStatusType = "failed"
)

Delete Snapshots

type DeleteSnapshotsOptionType string

const (
    DeleteSnapshotsOptionTypeInclude DeleteSnapshotsOptionType = "include"
    DeleteSnapshotsOptionTypeOnly    DeleteSnapshotsOptionType = "only"
)

Delete Type

type DeleteType string

const (
    DeleteTypeNone      DeleteType = "None"
    DeleteTypePermanent DeleteType = "Permanent"
)

Immutability Policy

type ImmutabilityPolicyMode string

const (
    ImmutabilityPolicyModeMutable  ImmutabilityPolicyMode = "Mutable"
    ImmutabilityPolicyModeUnlocked ImmutabilityPolicyMode = "Unlocked"
    ImmutabilityPolicyModeLocked   ImmutabilityPolicyMode = "Locked"
)

type ImmutabilityPolicySetting string

const (
    ImmutabilityPolicySettingUnlocked ImmutabilityPolicySetting = "Unlocked"
    ImmutabilityPolicySettingLocked   ImmutabilityPolicySetting = "Locked"
)

Rehydrate Priority

type RehydratePriority string

const (
    RehydratePriorityHigh     RehydratePriority = "High"
    RehydratePriorityStandard RehydratePriority = "Standard"
)

func PossibleRehydratePriorityValues() []RehydratePriority

Archive Status

type ArchiveStatus string

const (
    ArchiveStatusRehydratePendingToCool ArchiveStatus = "rehydrate-pending-to-cool"
    ArchiveStatusRehydratePendingToHot  ArchiveStatus = "rehydrate-pending-to-hot"
    ArchiveStatusRehydratePendingToCold ArchiveStatus = "rehydrate-pending-to-cold"
)

func PossibleArchiveStatusValues() []ArchiveStatus

Query Format Type

type QueryFormatType string

const (
    QueryFormatTypeDelimited QueryFormatType = "delimited"
    QueryFormatTypeJSON      QueryFormatType = "json"
    QueryFormatTypeArrow     QueryFormatType = "arrow"
    QueryFormatTypeParquet   QueryFormatType = "parquet"
)

func PossibleQueryFormatTypeValues() []QueryFormatType

File Request Intent Type

type FileRequestIntentType string

const (
    FileRequestIntentTypeBackup FileRequestIntentType = "backup"
)

func PossibleFileRequestIntentTypeValues() []FileRequestIntentType

Utility Functions

ParseHTTPHeaders

func ParseHTTPHeaders(resp GetPropertiesResponse) HTTPHeaders

Converts a GetPropertiesResponse into HTTPHeaders struct for use with SetHTTPHeaders.

ParseURL

func ParseURL(u string) (URLParts, error)

Parses a blob URL string into its component parts.

TransferValidationTypeComputeCRC64

func TransferValidationTypeComputeCRC64() TransferValidationType

Returns a TransferValidationType that uses CRC64 checksums for data integrity validation.

Enum Helper Functions

func PossibleAccessTierValues() []AccessTier
func PossibleBlobTypeValues() []BlobType
func PossibleCopyStatusTypeValues() []CopyStatusType
func PossibleDeleteSnapshotsOptionTypeValues() []DeleteSnapshotsOptionType
func PossibleDeleteTypeValues() []DeleteType
func PossibleEncryptionAlgorithmTypeValues() []EncryptionAlgorithmType
func PossibleImmutabilityPolicyModeValues() []ImmutabilityPolicyMode
func PossibleImmutabilityPolicySettingValues() []ImmutabilityPolicySetting

Returns all possible values for the respective enum types.

Types

Access Conditions

type AccessConditions struct {
    ModifiedAccessConditions *ModifiedAccessConditions
    LeaseAccessConditions    *LeaseAccessConditions
}

type ModifiedAccessConditions struct {
    IfMatch           *azcore.ETag
    IfNoneMatch       *azcore.ETag
    IfModifiedSince   *time.Time
    IfUnmodifiedSince *time.Time
    IfTags            *string
}

type LeaseAccessConditions struct {
    LeaseID *string
}

type SourceModifiedAccessConditions struct {
    SourceIfMatch           *azcore.ETag
    SourceIfNoneMatch       *azcore.ETag
    SourceIfModifiedSince   *time.Time
    SourceIfUnmodifiedSince *time.Time
    SourceIfTags            *string
}

Client-Provided Encryption

type CPKInfo struct {
    EncryptionKey       *string
    EncryptionKeySHA256 *string
    EncryptionAlgorithm *EncryptionAlgorithmType
}

type CPKScopeInfo struct {
    EncryptionScope *string
}

type EncryptionAlgorithmType string

const EncryptionAlgorithmTypeAES256 EncryptionAlgorithmType = "AES256"

Object Replication

type ObjectReplicationPolicy struct {
    PolicyID *string
    Rules    *[]ObjectReplicationRule
}

type ObjectReplicationRule struct {
    RuleID           *string
    ReplicationStatus *ObjectReplicationStatus
}

type ObjectReplicationStatus string

const (
    ObjectReplicationStatusComplete ObjectReplicationStatus = "complete"
    ObjectReplicationStatusFailed   ObjectReplicationStatus = "failed"
)

Transfer Validation

type TransferValidationType interface {
    Apply(body io.ReadSeekCloser) (io.ReadSeekCloser, error)
    ComputeHash(body []byte) []byte
}

type TransferValidationTypeMD5 struct{}
type TransferValidationTypeCRC64 struct{}

type SourceContentValidationType interface {
    Apply(options interface{})
}

type SourceContentValidationTypeMD5 []byte
type SourceContentValidationTypeCRC64 []byte

Retry Reader

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

type RetryReaderOptions struct {
    MaxRetries     int32
    OnFailedRead   func(failureCount int, lastError error, offset int64, count int64, willRetry bool)
    ClientProvidedKeyOptions *CPKInfo
    CPKScopeInfo   *CPKScopeInfo
}

func NewRetryReader(ctx context.Context, initialResponse *http.Response, info RetryReaderOptions, getter func(ctx context.Context, offset int64) (*http.Response, error)) *RetryReader

Shared Key Credential

type SharedKeyCredential = service.SharedKeyCredential