[英]How to Read & Write to same Blob file in Azure Function (.NET6)
In Azure Function V1 (.NET4) code below worked fine在 Azure Function V1 (.NET4) 下面的代码运行良好
[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但是在 Azure Function V4 (.NET 6) 中,抛出只能访问 1 stream 的错误
[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)?如何读取和写入 Azure Function (.NET6) 中的同一个 Blob 文件?
Note: issue only appears in Azure not in local debugging注意:问题只出现在 Azure 不在本地调试
After reproducing from our end, This was working even though we have added 2 streams.从我们这边重现后,即使我们添加了 2 个流,它也能正常工作。 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后触发后的文本文件
Final solution that worked in Azure Function V4 (.NET 6) is BlobClient
在 Azure Function V4 (.NET 6) 中工作的最终解决方案是BlobClient
Code to use BlobClient to read/write files in blob storage使用BlobClient读取/写入 blob 存储中的文件的代码
[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)
{ ... }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.