簡體   English   中英

Azure Function TextWriter stream 附加到文件而不是覆蓋 - 我需要用 using 語句包裝嗎?

[英]Azure Function TextWriter stream is appending to file and not overwriting - do I need to wrap in a using statement?

我有一個 Azure 存儲帳戶,我可以在其中上傳文件。 文件上傳發生在 Azure Function(Blob 觸發器)中。

一切都按預期工作,但是,如果我觸發 Function 三次,該文件將附加前三個會話數據。 我認為我沒有正確處理 stream。

 public void Run(
        [BlobTrigger("raw/{name}")] Stream input,
        [Blob("data/{name}", FileAccess.Write)] TextWriter output,
        string name,
        ILogger log)

然后我寫信給 output 如下:

output.WriteLine(data);

我不確定如何將其包裝在 using 語句中。

誰能建議?

這是對我有用的代碼,每次我觸發 function 文件都會被當前觸發的數據覆蓋。

using System;
using System.IO;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;

namespace FunctionAppTW
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static void Run([BlobTrigger("raw/{name}", Connection = "")] Stream input, [Blob("data/{name}", FileAccess.Write)] TextWriter output, string name, ILogger log)
        {

            StreamReader reader = new StreamReader(input);
            string data = reader.ReadToEnd();

            output.WriteLine(data);
        }
    }
}

結果:

在此處輸入圖像描述

在此處輸入圖像描述

我自己之前遇到過這個問題。 我不記得了,但我在我的函數應用程序中使用了依賴注入。 我的實現代碼使 stream 保持活動狀態,並在僅使用 output.writeline() 語句時聚合以前的運行。

在每次方法調用之前,我都必須關閉並處理之前的 session。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM