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