tessl install tessl/golang-github-com--azure--azure-sdk-for-go--sdk--storage--azblob@1.6.0Azure Blob Storage SDK for Go providing comprehensive blob storage operations including uploads, downloads, container management, and advanced features like leases and SAS generation
The append blob client provides operations specific to append blobs, which are optimized for append operations like logging scenarios.
import "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/appendblob"type Client struct {
// contains filtered or unexported fields
}func NewClient(blobURL string, cred azcore.TokenCredential, options *ClientOptions) (*Client, error)
func NewClientWithSharedKeyCredential(blobURL string, cred *blob.SharedKeyCredential, options *ClientOptions) (*Client, error)
func NewClientFromConnectionString(connectionString, containerName, blobName string, options *ClientOptions) (*Client, error)
func NewClientWithNoCredential(blobURL string, options *ClientOptions) (*Client, error)func (c *Client) BlobClient() *blob.Client
func (c *Client) URL() string
func (c *Client) WithSnapshot(snapshot string) (*Client, error)
func (c *Client) WithVersionID(versionID string) (*Client, error)Creates a new append blob.
func (c *Client) Create(ctx context.Context, o *CreateOptions) (CreateResponse, error)Options:
type CreateOptions struct {
HTTPHeaders *blob.HTTPHeaders
Metadata map[string]*string
Tags map[string]string
AccessConditions *blob.AccessConditions
CPKInfo *blob.CPKInfo
CPKScopeInfo *blob.CPKScopeInfo
}Appends a block of data to an append blob.
func (c *Client) AppendBlock(ctx context.Context, body io.ReadSeekCloser, o *AppendBlockOptions) (AppendBlockResponse, error)Options:
type AppendBlockOptions struct {
AppendPositionAccessConditions *AppendPositionAccessConditions
CPKInfo *blob.CPKInfo
CPKScopeInfo *blob.CPKScopeInfo
LeaseAccessConditions *blob.LeaseAccessConditions
ModifiedAccessConditions *blob.ModifiedAccessConditions
TransferValidation blob.TransferValidationType
}
type AppendPositionAccessConditions struct {
AppendPosition *int64
MaxSize *int64
}Example:
// Create append blob
_, err := appendBlobClient.Create(ctx, nil)
if err != nil {
// handle error
}
// Append data
data := bytes.NewReader([]byte("log entry 1\n"))
_, err = appendBlobClient.AppendBlock(ctx, streaming.NopCloser(data), nil)
// Append more data
data2 := bytes.NewReader([]byte("log entry 2\n"))
_, err = appendBlobClient.AppendBlock(ctx, streaming.NopCloser(data2), nil)Appends a block from a URL source.
func (c *Client) AppendBlockFromURL(ctx context.Context, source string, o *AppendBlockFromURLOptions) (AppendBlockFromURLResponse, error)Options:
type AppendBlockFromURLOptions struct {
AppendPositionAccessConditions *AppendPositionAccessConditions
CPKInfo *blob.CPKInfo
CPKScopeInfo *blob.CPKScopeInfo
LeaseAccessConditions *blob.LeaseAccessConditions
ModifiedAccessConditions *blob.ModifiedAccessConditions
SourceModifiedAccessConditions *blob.SourceModifiedAccessConditions
SourceRange *blob.HTTPRange
SourceContentMD5 []byte
SourceContentCRC64 []byte
}Seals an append blob, making it read-only and preventing further appends.
func (c *Client) Seal(ctx context.Context, o *SealOptions) (SealResponse, error)Options:
type SealOptions struct {
AppendPositionAccessConditions *AppendPositionAccessConditions
LeaseAccessConditions *blob.LeaseAccessConditions
ModifiedAccessConditions *blob.ModifiedAccessConditions
}Sets blob expiry time (hierarchical namespace only).
func (c *Client) SetExpiry(ctx context.Context, expiryType ExpiryType, o *SetExpiryOptions) (SetExpiryResponse, error)Options:
type SetExpiryOptions struct {
ExpiresOn *time.Time
}Response:
type SetExpiryResponse struct {
ClientRequestID *string
Date *time.Time
ETag *azcore.ETag
LastModified *time.Time
RequestID *string
Version *string
}type ExpiryType string
const (
ExpiryTypeAbsolute ExpiryType = "Absolute"
ExpiryTypeNever ExpiryType = "NeverExpire"
ExpiryTypeRelativeToCreation ExpiryType = "RelativeToCreation"
ExpiryTypeRelativeToNow ExpiryType = "RelativeToNow"
)
func PossibleExpiryTypeValues() []ExpiryTypetype ClientOptions struct {
Telemetry policy.TelemetryOptions
Transport policy.Transporter
Retry policy.RetryOptions
PerCallPolicies []policy.Policy
PerRetryPolicies []policy.Policy
InsecureAllowCredentialWithHTTP bool
DisableRPRegistration bool
}