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

container.mddocs/

Container Client (container.Client)

The container client manages container-level operations including lifecycle, properties, metadata, access policies, and blob listing.

Package Import

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

Client Type

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

Constructors

// Create with Azure AD credential
func NewClient(containerURL string, cred azcore.TokenCredential, options *ClientOptions) (*Client, error)

// Create with shared key credential
func NewClientWithSharedKeyCredential(containerURL string, cred *SharedKeyCredential, options *ClientOptions) (*Client, error)

// Create from connection string
func NewClientFromConnectionString(connectionString string, containerName string, options *ClientOptions) (*Client, error)

// Create without credential (for SAS URLs)
func NewClientWithNoCredential(containerURL string, options *ClientOptions) (*Client, error)

Container Operations

URL

func (c *Client) URL() string

Returns the container URL.

Create

func (c *Client) Create(ctx context.Context, options *CreateOptions) (CreateResponse, error)

Creates a container.

Options:

type CreateOptions struct {
    Access       *PublicAccessType
    Metadata     map[string]*string
    CPKScopeInfo *CPKScopeInfo
}

Delete

func (c *Client) Delete(ctx context.Context, options *DeleteOptions) (DeleteResponse, error)

Deletes a container.

Restore

func (c *Client) Restore(ctx context.Context, deletedContainerVersion string, options *RestoreOptions) (RestoreResponse, error)

Restores a soft-deleted container.

GetProperties

func (c *Client) GetProperties(ctx context.Context, o *GetPropertiesOptions) (GetPropertiesResponse, error)

Gets container properties and metadata.

SetMetadata

func (c *Client) SetMetadata(ctx context.Context, o *SetMetadataOptions) (SetMetadataResponse, error)

Sets container metadata.

Options:

type SetMetadataOptions struct {
    Metadata         map[string]*string
    AccessConditions *AccessConditions
}

GetAccessPolicy

func (c *Client) GetAccessPolicy(ctx context.Context, o *GetAccessPolicyOptions) (GetAccessPolicyResponse, error)

Gets the container's access policy (public access level and stored access policies).

SetAccessPolicy

func (c *Client) SetAccessPolicy(ctx context.Context, o *SetAccessPolicyOptions) (SetAccessPolicyResponse, error)

Sets the container's access policy.

Options:

type SetAccessPolicyOptions struct {
    Access               *PublicAccessType
    AccessConditions     *AccessConditions
    ContainerACL         []*SignedIdentifier
}

type SignedIdentifier struct {
    ID           *string
    AccessPolicy *AccessPolicy
}

type AccessPolicy struct {
    Expiry     *time.Time
    Permission *string
    Start      *time.Time
}

GetAccountInfo

func (c *Client) GetAccountInfo(ctx context.Context, o *GetAccountInfoOptions) (GetAccountInfoResponse, error)

Gets account information.

Blob Listing

NewListBlobsFlatPager

func (c *Client) NewListBlobsFlatPager(o *ListBlobsFlatOptions) *runtime.Pager[ListBlobsFlatResponse]

Lists blobs in the container (flat listing).

Options:

type ListBlobsFlatOptions struct {
    Include    ListBlobsInclude
    Marker     *string
    MaxResults *int32
    Prefix     *string
}

type ListBlobsInclude struct {
    Snapshots          bool
    Versions           bool
    UncommittedBlobs   bool
    Copy               bool
    Deleted            bool
    Tags               bool
    LegalHold          bool
    ImmutabilityPolicy bool
    DeletedWithVersions bool
    Permissions        bool
}

Example:

pager := containerClient.NewListBlobsFlatPager(&container.ListBlobsFlatOptions{
    Include: container.ListBlobsInclude{
        Metadata: true,
        Tags:     true,
    },
    Prefix: to.Ptr("documents/"),
})

for pager.More() {
    page, err := pager.NextPage(ctx)
    if err != nil {
        // handle error
    }
    for _, blob := range page.Segment.BlobItems {
        fmt.Printf("Blob: %s\n", *blob.Name)
    }
}

NewListBlobsHierarchyPager

func (c *Client) NewListBlobsHierarchyPager(delimiter string, o *ListBlobsHierarchyOptions) *runtime.Pager[ListBlobsHierarchyResponse]

Lists blobs with hierarchy using a delimiter (typically "/").

Options:

type ListBlobsHierarchyOptions struct {
    Include    ListBlobsInclude
    Marker     *string
    MaxResults *int32
    Prefix     *string
}

FilterBlobs

func (c *Client) FilterBlobs(ctx context.Context, where string, o *FilterBlobsOptions) (FilterBlobsResponse, error)

Filters blobs by tags within this container.

Blob Client Factories

NewBlobClient

func (c *Client) NewBlobClient(blobName string) *blob.Client

Creates a generic blob client.

NewBlockBlobClient

func (c *Client) NewBlockBlobClient(blobName string) *blockblob.Client

Creates a block blob client.

NewAppendBlobClient

func (c *Client) NewAppendBlobClient(blobName string) *appendblob.Client

Creates an append blob client.

NewPageBlobClient

func (c *Client) NewPageBlobClient(blobName string) *pageblob.Client

Creates a page blob client.

Batch Operations

NewBatchBuilder

func (c *Client) NewBatchBuilder() (*BatchBuilder, error)

Creates a batch builder for operations within this container.

SubmitBatch

func (c *Client) SubmitBatch(ctx context.Context, bb *BatchBuilder, options *SubmitBatchOptions) (SubmitBatchResponse, error)

Submits a batch of operations.

BatchBuilder

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

func (bb *BatchBuilder) Delete(blobName string, options *BatchDeleteOptions) error
func (bb *BatchBuilder) SetTier(blobName string, accessTier blob.AccessTier, options *BatchSetTierOptions) error

SAS Generation

GetSASURL

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

Generates a container-level SAS URL. Requires SharedKeyCredential.

Example:

import (
    "time"
    "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/sas"
)

permissions := sas.ContainerPermissions{
    Read:   true,
    Write:  true,
    List:   true,
    Create: true,
}

expiry := time.Now().Add(24 * time.Hour)
sasURL, err := containerClient.GetSASURL(permissions, expiry, nil)

Types

Blob List Types

type BlobFlatListSegment struct {
    BlobItems []*BlobItem
}

type BlobHierarchyListSegment struct {
    BlobItems  []*BlobItem
    BlobPrefixes []*BlobPrefix
}

type BlobItem struct {
    Name             *string
    Deleted          *bool
    Snapshot         *string
    VersionID        *string
    IsCurrentVersion *bool
    Properties       *BlobProperties
    Metadata         map[string]*string
    BlobTags         *BlobTags
    HasVersionsOnly  *bool
    OrMetadata       map[string]*string
}

type BlobProperties struct {
    CreationTime              *time.Time
    LastModified              *time.Time
    ETag                      *azcore.ETag
    ContentLength             *int64
    ContentType               *string
    ContentEncoding           *string
    ContentLanguage           *string
    ContentMD5                []byte
    ContentDisposition        *string
    CacheControl              *string
    BlobSequenceNumber        *int64
    BlobType                  *BlobType
    AccessTier                *AccessTier
    AccessTierInferred        *bool
    LeaseStatus               *LeaseStatusType
    LeaseState                *LeaseStateType
    LeaseDuration             *LeaseDurationType
    ServerEncrypted           *bool
    EncryptionKeySHA256       *string
    EncryptionScope           *string
    CopyID                    *string
    CopySource                *string
    CopyStatus                *CopyStatusType
    CopyProgress              *string
    CopyCompletionTime        *time.Time
    TagCount                  *int64
    ArchiveStatus             *ArchiveStatus
    DeletedTime               *time.Time
    RemainingRetentionDays    *int32
    ImmutabilityPolicyExpiresOn    *time.Time
    ImmutabilityPolicyMode    *ImmutabilityPolicyMode
    LegalHold                 *bool
}

type BlobPrefix struct {
    Name *string
}

type BlobTag struct {
    Key   *string
    Value *string
}

type BlobTags struct {
    BlobTagSet []*BlobTag
}

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
}

CPK Scope Info

type CPKScopeInfo struct {
    EncryptionScope *string
}

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"
)

Archive Status

type ArchiveStatus string

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

Public Access Type

type PublicAccessType string

const (
    PublicAccessTypeBlob      PublicAccessType = "blob"
    PublicAccessTypeContainer PublicAccessType = "container"
)

Client Options

type ClientOptions struct {
    Telemetry                       policy.TelemetryOptions
    Transport                       policy.Transporter
    Retry                           policy.RetryOptions
    PerCallPolicies                 []policy.Policy
    PerRetryPolicies                []policy.Policy
    InsecureAllowCredentialWithHTTP bool
    DisableRPRegistration           bool
}

Shared Key Credential

type SharedKeyCredential = service.SharedKeyCredential