我的计划是让WebJob将新生成的CSV发送到Blob存储,然后由Azure函数将其存储并通过电子邮件发送给一组收件人。
我正在使用CsvWriter库来生成CSV。有人告诉我,理想情况下,我应该直接上传到blob存储容器,但是当CsvWriter仅能够使用我们通过构造函数传递给它的任何TextWriter写入文件系统时,我不确定该怎么做
所以我要尝试的是允许CsvWriter将文件写入文件系统,然后将其拾取并将其上传到Blob存储。这里的问题是,我尝试使其写入的每个目录都拒绝访问WebJob。我已经尝试过Environment.GetEnvironmentVariable("WEBJOBS_ROOT_PATH")
以及%HOME%
和d:\site\wwwroot
。
我需要写入哪个目录?
答案 0 :(得分:1)
您可以通过使用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());
}