'How to Read & Write to same Blob file in Azure Function (.NET6)
In Azure Function V1 (.NET4) code below worked fine
[FunctionName("run")]
public static HttpResponseMessage run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage request,
[Blob("sample.txt", FileAccess.Read)] Stream readStream,
[Blob("sample.txt", FileAccess.Write)] Stream writeStream)
{
//read & write to sample.txt stream works ok
}
But in Azure Function V4 (.NET 6), throws error that only 1 stream can be accessed
[FunctionName("run")]
public static HttpResponseMessage run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage request,
[Blob("sample.txt", FileAccess.Read)] Stream readStream,
[Blob("sample.txt", FileAccess.Write)] Stream writeStream)
{
//can ONLY use read stream or write stream, can't use both
}
How to Read & Write to same Blob file in Azure Function (.NET6)?
Note: issue only appears in Azure not in local debugging
Solution 1:[1]
Final solution that worked in Azure Function V4 (.NET 6) is BlobClient
Code to use BlobClient to read/write files in blob storage
[FunctionName("Function1")]
public static async Task<IActionResult> Function1(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage incomingRequest,
[Blob("container-name/file-name.xml", FileAccess.ReadWrite)] BlobClient fileBlobClient)
{ ... }
Solution 2:[2]
After reproducing from our end, This was working even though we have added 2 streams. Make sure your environment is up to date.
[FunctionName("Function1")]
public static void Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage req,
[Blob("samples-workitems/samples.txt", FileAccess.Read)] Stream readStream,
[Blob("samples-workitems/samples.txt", FileAccess.Write)] Stream writeStream)
{
Console.WriteLine("Blob length is "+ readStream.Length);
string sample = "Sample Text";
byte[] bytes = Encoding.ASCII.GetBytes(sample);
writeStream.Write(bytes, 0, bytes.Length);
}
Considering this to be my initial text file

RESULT:

Text file after post-trigger

Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | user160357 |
| Solution 2 |
