如何使用Azure功能在Azure Blob中附加文本文件

时间:2017-09-26 02:13:16

标签: azure azure-storage azure-storage-blobs azure-functions

我有一个文本文件,我需要使用计时器Azure功能将数据附加到每日。文本文件是逗号分隔文件。 我已经创建了我的CloudBlobClient并知道如何制作我的共享访问策略和令牌。 我只是不知道如何使用它来上传。我只知道如何从我正在使用的教程中获取访问URI。

2 个答案:

答案 0 :(得分:4)

  

我有一个文本文件,我需要使用计时器Azure功能将数据附加到每日。

您可以尝试使用针对追加操作优化的追加blob。根据您的描述,您知道如何获取SAS URI,因此您可以使用SAS URI创建对追加blob的引用,并将文件追加到追加blob,以下代码供您参考。

CloudAppendBlob appendBlob = new CloudAppendBlob(new Uri("https://{storage_account}.blob.core.windows.net/{your_container}/append-blob.log?st=2017-09-25T02%3A10%3A00Z&se=2017-09-27T02%3A10%3A00Z&sp=rwl&sv=2015-04-05&sr=b&sig=d0MENO44GjtBLf7L8U%2B%2F2nGwPAayjiVSSHaKJgEkmIs%3D"));


appendBlob.AppendFromFile("{filepath}\source.txt");

答案 1 :(得分:0)

    public class Blob
{
    public static async Task Save(string fileName, string message)
    {
        var blobContainer = ConfigurationManager.AppSettings["BlobContainer"];
        var blobConnectionString = ConfigurationManager.AppSettings["BlobConnectionString"];

        var storageAccount = CloudStorageAccount.Parse(blobConnectionString);
        var blobClient = storageAccount.CreateCloudBlobClient();
        var container = blobClient.GetContainerReference(blobContainer);
        var cloudBlockBlob = container.GetBlockBlobReference(fileName);

        if (await cloudBlockBlob.ExistsAsync())
        {
            var oldContent = await cloudBlockBlob.DownloadTextAsync();
            var newContent = oldContent + "\n" + message;
            await cloudBlockBlob.UploadTextAsync(newContent);
        }
        else
        {
            await cloudBlockBlob.UploadTextAsync(message);
        }
    }
}