Попытка записи файла из Azure WebJob - PullRequest
0 голосов
/ 15 ноября 2018

Мой план состоит в том, чтобы WebJob отправлял недавно сгенерированный CSV в хранилище больших двоичных объектов, где оно было получено функцией Azure и отправлено по электронной почте группе получателей.

Я использую библиотеку CsvWriter для генерации CSV. Мне сказали, что в идеале я должен загружать прямо в контейнер хранилища BLOB-объектов, однако я не уверен, как я собираюсь это делать, когда CsvWriter может только писать в файловую систему, используя любой TextWriter, который мы передаем ему через конструктор .

Итак, вместо этого я пытаюсь разрешить CsvWriter записать файл в файловую систему, а затем я его заберу и загрузлю в хранилище больших двоичных объектов. Проблема здесь в том, что каждый каталог, в который я пытаюсь записать его, запрещает доступ к WebJob. Я пробовал Environment.GetEnvironmentVariable("WEBJOBS_ROOT_PATH"), а также %HOME% и d:\site\wwwroot.

В какой каталог мне нужно писать?

1 Ответ

0 голосов
/ 15 ноября 2018

Вы можете полностью избежать этого, используя 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());
}
...