从Azure计时器触发器功能访问位于Azure Blob中的文件

问题描述 投票:1回答:1

我有一个Azure Timer Trigger功能,它生成一个excel文件,我需要通过电子邮件发送它作为附件。我成功完成了以下操作 -

  1. 创建文件并将其上传到azure blob中
  2. 发送没有附件的电子邮件(使用SmtpClient和MailMessage)

如何从Azure Blob获取文件并将其作为附件发送?

附:当我将文件存储在Azure的本地存储功能中时,我能够将其作为附件发送。但是,我想将文件的存储移动到Azure Blob

c# .net azure azure-storage-blobs
1个回答
1
投票

如何从Azure Blob获取文件并将其作为附件发送?

根据我的理解,您可以将blob下载到函数中的临时本地文件中,如下所示:

// Save blob contents to a file.
using (var fileStream = System.IO.File.OpenWrite(@"path\myfile"))
{
    blockBlob.DownloadToStream(fileStream);
}

然后,你可以构建你的Attachment如下:

System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment("{file-path}");

或者你可以直接将你的blob下载到MemoryStream中,如下所示:

using (var memoryStream = new MemoryStream())
{
    blockBlob2.DownloadToStream(memoryStream);
    memoryStream.Position = 0;
    System.Net.Mail.Attachment attach = new System.Net.Mail.Attachment(memoryStream , "{contentType}");
}

您可以关注Download blobs的详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.