как узнать, когда загрузка нескольких файлов в хранилище Azure завершена в ASP.NET - PullRequest
0 голосов
/ 14 января 2019

Мы используем функцию Azure для обработки документов, загруженных в большой двоичный объект хранилища Azure. Нам нужно отправить электронное письмо после успешной загрузки всех документов в BLOB-объекте (т.е. 50 файлов за один раз) в качестве статуса загрузки. Как мы можем получить статус, что все файлы успешно загружены на наш BLOB-объект?

Ответы [ 3 ]

0 голосов
/ 17 января 2019

Azure Functions имеет удобное расширение, которое позволяет вам делать это, Azure Durable Functions. Здесь вы ищете схему монитора, опрашивающую до тех пор, пока не будут выполнены определенные условия. Вот пример, который проверяет состояние погоды и затем отправляет SMS с помощью Twilio https://docs.microsoft.com/en-gb/azure/azure-functions/durable/durable-functions-monitor.

Код на Github на https://github.com/Azure/azure-functions-durable-extension/tree/master/samples/csx - ознакомьтесь с примерами, начинающимися с E3.

0 голосов
/ 15 марта 2019

Для получения правильного решения / рекомендации потребуется более подробная информация.

Как вы обрабатываете эти файлы?

  • Реагируете ли вы на событие, описанное ниже?
  • Вы обрабатываете эти файлы из очереди, поэтому у вас нет доступа ко всем файлам?

Вы можете использовать один из следующих подходов в зависимости от ваших требований:

Триггер хранилища BLOB-объектов запускает функцию при обнаружении нового или обновленного BLOB-объекта. Содержимое BLOB-объекта предоставляется в качестве входных данных для функции.

Триггер Event Grid имеет встроенную поддержку событий BLOB-объектов и может также использоваться для запуска функции при обнаружении нового или обновленного BLOB-объекта. Пример см. В руководстве «Изменение размера изображения с помощью сетки событий».

Используйте Сетка событий вместо триггера хранилища BLOB-объектов для следующих сценариев:

  • Учетные записи хранилища BLOB-объектов
  • Высокая шкала
  • Минимизация задержки
0 голосов
/ 14 января 2019

Я не верю, что в Azure есть встроенная функция, которая предоставит вам статус программно или вызовет событие. Однако возможное решение будет следующим:

  1. Перед загрузкой всех 50 файлов в виде пакета создайте файл JSON который содержит имена всех файлов, которые будут загружены. Давайте назовем этот JSON-файл списком пакетов.
  2. Сначала загрузите файл списка партий, а затем загрузите все свои файлы, которые вам нужно загрузить.
  3. В процессе опроса определите, все ли файлы в пакете Список существует в хранилище BLOB-объектов. Если нет, то игнорировать до следующего раз, когда вы можете сделать это. Как только вы определите, что все файлы в Пакетный список существует в хранилище BLOB-объектов, а затем отправьте письмо в соответствии с ваше требование Удалить файл списка партий.

Это базовая концепция. Это, очевидно, может быть более изощренным, но я надеюсь, что вы поняли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...