尝试从 Azure WebJob 写入文件

Trying to write a file from an Azure WebJob

我的计划是让 WebJob 将新生成的 CSV 发送到 blob 存储,Azure Functions 会在其中将其拾取并通过电子邮件发送给一组收件人。

我正在使用 CsvWriter 库生成 CSV。我被告知理想情况下我应该直接上传到 blob 存储容器,但是当 CsvWriter 只能使用我们通过构造函数传递给它的任何 TextWriter 写入文件系统时,我不确定我将如何做到这一点.

所以我想做的是允许 CsvWriter 将文件写入文件系统,然后我会选择它并将其上传到 blob 存储。这里的问题是我试图让它写入的每个目录都拒绝访问 WebJob。我试过 Environment.GetEnvironmentVariable("WEBJOBS_ROOT_PATH") 以及 %HOME%d:\site\wwwroot.

我需要写入什么目录?

您可以通过使用 StringWriter 完全避免它,您 没有 使用文件系统:

using (var stringWriter = new StringWriter())
using (var csvWriter = new CsvHelper.CsvWriter(stringWriter))
{
    csvWriter.WriteComment("Test");
    csvWriter.Flush();

    var blob = container.GetBlockBlobReference("test.csv");
    await blob.UploadTextAsync(stringWriter.ToString());
}