Ahoj, chci používat blob storage na logování chyb a dalších akcí. Mám následující kód:
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
// Create the container if it doesn't already exist.
if (container.CreateIfNotExists())
container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
DateTime today = LocalTime.Today;
string blobName = string.Format("log_{0}_{1}_{2}", today.Day, today.Month, today.Year);
// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName);
string text = blockBlob.DownloadText();
text += Environment.NewLine + message;
blockBlob.UploadText(text);
Tohle řešení funguje, ale nelíbí se mi, protože nejdřív musím celý obsah stáhnout, přidat novou zprávu a znovu uložit. Původně jsem zkoušel tohle, ale CloudBlobStream neimplementuje vlastnost Lenght a ani nijak jinak se mi nepovedlo ho donutit skočit na konec streamu.
using (CloudBlobStream stream = blockBlob.OpenWrite())
{
var bytes = ASCIIEncoding.ASCII.GetBytes(message);
stream.Write(bytes, (int)stream.Length, bytes.Length);
}
Nevíte někdo jak to hezky vyřešit? Díky
|