Skip to content

Latest commit

 

History

History
45 lines (39 loc) · 1.7 KB

File metadata and controls

45 lines (39 loc) · 1.7 KB

Azure Blob Storage

// read a blob file into a string
public static string ReadBlobText(string containerName, string fileName)
{
	string connectionString = Environment.GetEnvironmentVariable("AzureWebJobsStorage", EnvironmentVariableTarget.Process);
	CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
	CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
	CloudBlobContainer container = blobClient.GetContainerReference(containerName);
	var thisBlob = container.GetBlockBlobReference(fileName);

	using var memoryStream = new MemoryStream();

	var blobRequestOptions = new BlobRequestOptions
	{
		ServerTimeout = TimeSpan.FromSeconds(30),
		MaximumExecutionTime = TimeSpan.FromSeconds(120),
		RetryPolicy = new ExponentialRetry(TimeSpan.FromSeconds(3), maxAttempts: 3),
	};

	thisBlob.DownloadToStream(memoryStream, null, blobRequestOptions);
	byte[] bytes = memoryStream.ToArray();
	string text = Encoding.Default.GetString(bytes);

	return text;
}
// append a string to an AppendBlob
public static void AppendBlob(string containerName, string fileName, string txt, bool lineBreakBefore = true)
{
	string connectionString = Environment.GetEnvironmentVariable("AzureWebJobsStorage", EnvironmentVariableTarget.Process);
	CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
	CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
	CloudBlobContainer container = blobClient.GetContainerReference(containerName);
	CloudAppendBlob appendBlob = container.GetAppendBlobReference(fileName);
	if (!appendBlob.Exists())
		appendBlob.CreateOrReplace();
	if (lineBreakBefore)
		appendBlob.AppendText("\n");
	appendBlob.AppendText(txt);
}