如何在Azure Blob上存储电子邮件以进行队列处理?

时间:2013-07-11 22:36:26

标签: azure azure-storage azure-storage-blobs azure-worker-roles azure-queues

我有一个电子邮件Azure工作者角色(您猜对了),只需发送一封电子邮件。

它使用包含To,From和Body的队列。所以实际的队列消息都有电子邮件本身。

但是我遇到了一个电子邮件大小超过64KB的问题,因此无法将其放入队列。

所以现在我认为我需要将电子邮件存储在Azure Blob上,然后在邮件上存储对该blob的引用。然后工人可以从blob中抓取电子邮件。

但Blob存储似乎更像是图像,文件等 - 这只是我创建的内存中的POCO。

我如何将一个POCO基本上放在Azure Blob上 - 或者有没有人有任何其他想法来完成这项任务?

2 个答案:

答案 0 :(得分:3)

解决了我的问题。

  1. 将对象序列化为字符串。 (使用JSON.NET)
  2. 从字符串字节创建MemoryStream,在Azure Blob上弹出
  3. 创建一个引用Blob GUID
  4. 的队列消息
  5. 工作者角色接收消息,从Blob获取流,转换回C#POCO,发送电子邮件。

答案 1 :(得分:0)

您可以序列化对象,以便将其存储在Windows Azure队列中。这篇文章说明了如何做到这一点。 Passing object messages in Azure Queue Storage