Как создать zip-архив из нескольких файлов BLOB-объектов Azure?

У меня есть случай, когда мне нужно предоставить zip-файл для загрузки из браузера из нескольких файлов в хранилище BLOB-объектов Azure?

Я считаю, что это невозможно сделать без загрузки файлов на машину и их упаковки.

(Я использую функции Azure для API, поэтому загружать их в функциональную память не очень хорошо, а размер конечного zip-файла может составлять ~ 5 ГБ)

Есть ли другие альтернативы для достижения этой цели?

Data Factory может легко архивировать папки и файлы Blob. Подходит ли вам этот вариант?

Joel Cochran 21.06.2024 18:58

Спасибо @JoelCochran, похоже, это решение, которое подходит для моего варианта использования.

Santosh Pisini 22.06.2024 18:11

Лучше всего включать проделанную вами работу вместе с конкретной проблемой (минимально воспроизводимый пример). На данный момент вы предоставили только набор требований.

David Makogon 24.06.2024 15:34
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
3
84
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

создать zip-архив из нескольких файлов BLOB-объектов Azure?

Я согласен с комментарием Джоэла Кокрана: вы можете использовать Azure Data factory, чтобы заархивировать несколько файлов из хранилища BLOB-объектов Azure.

Сначала создайте целевой контейнер для хранения всех файлов больших двоичных объектов в формате zip из исходного контейнера.

Портал:

Это файлы, хранящиеся в исходном контейнере.

Теперь я создал набор данных Binary для исходного и целевого контейнера. В исходном наборе данных укажите путь до необходимой папки.

Портал:

В пункте назначения укажите путь и тип сжатия ZipDeflate(.zip), как показано ниже.

Портал:

Выполните действие копирования, и вы увидите необходимый файл в целевом контейнере с zip-файлом.

Выход: Теперь вы можете загрузить заархивированные файлы из хранилища BLOB-объектов Azure.

Ссылка:

Копирование и преобразование данных в хранилище BLOB-объектов Azure — Фабрика данных Azure и Azure Synapse | Microsoft Learn

К вашему сведению, ОП не показал никакой работы и опубликовал только набор требований. Пожалуйста, не отвечайте на вопросы не по теме (вопрос открытый, без каких-либо подробностей из ОП). Предложение использовать ADF в комментарии нормально - позволяет ОП изучить этот вариант, но нет смысла создавать целое решение (это не то, для чего предназначено переполнение стека)

David Makogon 24.06.2024 15:33

Спасибо Venkatesan за подробное решение. Ранее сегодня я попробовал POC и смог сгенерировать zip, а также, к вашему сведению, нашел другое потенциальное решение (которое включает в себя Azure Durable и Stream, но еще не пробовал).

Santosh Pisini 25.06.2024 17:41

Рад знать, что это помогло :)

Venkatesan 26.06.2024 09:07

Другие вопросы по теме

Устойчивые функции Azure v4. Объект запроса триггера HTTP, отличный от версии 3
Некоторые журналы функций Azure отсутствуют в Application Insights
Функции Azure не принимают значение в кодировке URL-адреса в качестве параметра запроса?
Azure SignalR: ни один из транспортных средств, поддерживаемых клиентом, не поддерживается сервером
Функции Azure + .NET8 (изолированный режим) + OIDC — как проверить токен доступа, полученный в заголовке каждого запроса к моей функции Azure?
Тестирование приложения-функции, запускаемой по времени, на портале Azure вручную завершается неудачно
«Функция Azure» с образом Docker не работает для «триггера Azure Cosmos DB»
Переопределить среду функций Azure в службе Azure Kubernetes
Az funcappPublish .net8 Изолированное нарушение настроек среды выполнения конфигурации Azure при синхронизации
Рабочие функции не найдены. Попробуйте сделать свои классы и методы заданий общедоступными (NODEJS v4)