Как лучше всего заархивировать большие файлы, находящиеся в хранилище BLOB-объектов AZ, и загрузить их пользователю в архивном файле (zip / rar), может ли использование пакета Azure Batch? в настоящее время мы реализуем эти функции традиционным способом, мы читаем поток, генерируем zip-файл и возвращаем результат, но это требует много ресурсов на сервере и времени для пользователей. Я спрашиваю о лучшем техническом и технологическом решении (предпочтительный способ использования технологий Microsoft)
Создание файлов ZIP в хранилище BLOB-объектов Azure
Ответы (1)
Есть несколько способов сделать это **from azure-batch only point of view**
: (для начальной части пользовательского кода должен принадлежать любой zip api, который они используют для архивирования своих файлов, но когда он находится в BLOB-объекте и пользователь хочет использовать его в узлов, то есть варианты, упомянутые ниже.)
Для начальной части вашего вопроса я нашел вот что может пригодиться: https://microsoft.github.io/AzureTipsAndTricks/blog/tip141.html (но это в основном из идеи, и вы будете знать лучше + вам нужно соответствующим образом спроектировать пространство для решения)
В вариантах 1 и 3 ниже вам необходимо убедиться, что код пользователя обрабатывает распаковку или распаковку zip-файла. Вариант 2 - это пакетная встроенная функция для *.zip
файла как на уровне пула, так и на уровне задачи.
Вариант 1: вы можете добавить свой
*rar or *zip
файл какazure batch resource files
, а затем разархивировать его на уровне начальной задачи после загрузки файла ресурсов. Задача запуска пула пакетной службы Azure для загрузки файла ресурсов из Blob FileShareВариант 2: лучший вариант, если у вас есть
zip
но не rar файл в игре, - это функция с именемAzure batch applicaiton package
, ссылка здесь: https://docs.microsoft.com/en-us/azure/batch/batch-application-packages а>
Функция пакетов приложений в пакетной службе Azure обеспечивает простое управление приложениями-задачами и их развертывание на вычислительных узлах в вашем пуле. С помощью пакетов приложений вы можете загружать и управлять несколькими версиями приложений, запускаемых вашими задачами, включая их вспомогательные файлы. Затем вы можете автоматически развернуть одно или несколько из этих приложений на вычислительных узлах в вашем пуле.
Пакет приложения - это файл .zip, содержащий двоичные файлы приложения и вспомогательные файлы, необходимые для выполнения ваших задач при запуске приложения. Каждый пакет приложения представляет собой определенную версию приложения.
Что касается размера: обратитесь к максимально разрешенной ссылке на BLOB-объекты в документе выше.
Вариант 3: (Не уверен, подойдет ли это вашему сценарию) Отличный вариант для вашего конкретного сценария, но вы также можете подключить виртуальный большой двоичный объект к диску в объединенном пуле через функцию монтирования в пакете Azure и вам нужно написать код при запуске задача или что-то, что нужно разархивировать из смонтированного места.
Надеюсь, это поможет :)