如何知道何时将多个文件上传到Azure存储Blob在ASP.NET中完成

时间:2019-01-14 14:33:48

标签: asp.net-mvc azure azure-functions azure-storage-blobs azure-triggers

我们正在使用azure功能来处理在azure存储blob中上传的文档。成功将所有文档成功上传到Blob(即一次50个文件)后,我们需要发送电子邮件作为上传状态。 如何获取所有文件已成功上传到我们的Blob的状态?

3 个答案:

答案 0 :(得分:1)

Azure Functions具有一个简洁的扩展名,Azure Durable Functions可以使您做到这一点。您在这里寻找的是监视器模式,轮询直到满足某些条件。这是一个检查天气状况,然后使用Twilio https://docs.microsoft.com/en-gb/azure/azure-functions/durable/durable-functions-monitor发送SMS的示例。

该代码在https://github.com/Azure/azure-functions-durable-extension/tree/master/samples/csx的Github上发布-检出以E3开头的示例。

答案 1 :(得分:0)

我认为Azure中没有内置功能可以以编程方式为您提供状态或引发事件。但是,可能的解决方法如下:

  1. 批量上传所有50个文件之前,请创建一个JSON文件 其中包含将要上传的所有文件的名称。 我们将此JSON文件称为“批处理列表”。
  2. 首先上传批次列表文件,然后上传所有 您需要上传。
  3. 通过轮询过程,确定批处理中是否所有文件 列表存在于Blob存储中。如果没有,请忽略,直到下一个 您有时间这样做。一旦确定所有文件都在 批处理列表存在于Blob存储中,然后按照 您的要求。删除批处理列表文件。

这是一个基本概念。显然可以更复杂,但我希望您明白这一点。

答案 2 :(得分:0)

在提供适当的解决方案/建议之前,将需要更多详细信息。

您如何处理这些文件?

  • 您是否对下列事件做出反应?
  • 您是否按队列处理这些文件,这就是为什么您看不到所有文件的原因?

您可以根据需要使用以下方法之一:

当检测到新的或更新的Blob时,Blob存储触发器将启动功能。提供Blob内容作为该函数的输入。

事件网格触发器内置了对Blob事件的支持,当检测到新的或更新的Blob时,也可用于启动功能。有关示例,请参见“使用事件网格调整图像大小”教程。

在以下情况下,使用事件网格代替Blob存储触发器:

  • Blob存储帐户
  • 大规模
  • 最小化延迟