/
appendblob.go
31 lines (25 loc) · 1.27 KB
/
appendblob.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
package storage
import (
"context"
"strings"
"github.com/Azure/azure-storage-blob-go/azblob"
)
func getAppendBlobURL(ctx context.Context, accountName, accountGroupName, containerName, blobName string) azblob.AppendBlobURL {
container := getContainerURL(ctx, accountName, accountGroupName, containerName)
blob := container.NewAppendBlobURL(blobName)
return blob
}
// CreateAppendBlob creates an empty append blob
func CreateAppendBlob(ctx context.Context, accountName, accountGroupName, containerName, blobName string) (azblob.AppendBlobURL, error) {
b := getAppendBlobURL(ctx, accountName, accountGroupName, containerName, blobName)
_, err := b.Create(ctx, azblob.BlobHTTPHeaders{}, azblob.Metadata{}, azblob.BlobAccessConditions{})
return b, err
}
// AppendToBlob appends new data to the specified append blob
func AppendToBlob(ctx context.Context, accountName, accountGroupName, containerName, blobName, message string) error {
b := getAppendBlobURL(ctx, accountName, accountGroupName, containerName, blobName)
_, err := b.AppendBlock(ctx, strings.NewReader(message), azblob.AppendBlobAccessConditions{}, nil)
return err
}