#java #azure-functions #azure-blob-storage
#java #azure-функции #azure- blob-хранилище
Вопрос:
Я новичок и никогда раньше не имел дела с облачными решениями, поэтому приношу извинения за глупый вопрос.
У меня есть хранилище больших двоичных объектов Azure, содержащее PDF-файлы, из которых я хочу извлечь данные с помощью PDFBox. Поскольку PDFBox не может загружать большие двоичные объекты напрямую, в настоящее время я сначала загружаю эти файлы локально. Однако, в конечном итоге мой проект должен будет стать полностью облачным, предпочтительно в виде функции Azure.
Поэтому основным препятствием является выяснение того, как моя функция Azure должна получать доступ к файлам. При использовании консоли внутри моей функции Azure я заметил, что она поставляется с файловым хранилищем. Может ли функция загружать большие двоичные объекты и сохранять их здесь перед обработкой? Работает ли это хранилище файлов так же, как локальная среда, или есть различия, о которых следует помнить?
Я хочу хранить файлы здесь только временно, всего на несколько минут за раз.
Ответ №1:
Поэтому основным препятствием является выяснение того, как моя функция Azure должна получать доступ к файлам. При использовании консоли внутри моей функции Azure я заметил, что она поставляется с файловым хранилищем.
Да, вся информация о вашей развернутой функции Azure хранится в заданном вами файловом хранилище.(Это определяется при создании приложения-функции.)
Может ли функция загружать большие двоичные объекты и сохранять их здесь перед обработкой? Работает ли это хранилище файлов так же, как локальная среда, или есть различия, о которых следует помнить?
Да, вы можете. И корневой каталог является D:/home/site/wwwroot
. Итак, если вы не укажете, созданный вами файл будет находиться в этом каталоге.
Не забудьте удалить файлы, поскольку место для хранения ограничено. Это основано на выбранном вами плане.
Я хочу хранить файлы здесь только временно, всего на несколько минут за раз.
Кстати, если вы получаете файл из хранилища больших двоичных объектов, на данный момент вы полностью получили его данные. Вы можете обрабатывать полученные данные непосредственно в коде, не сохраняя их временно в текущей папке. (Конечно, если у вас есть особые потребности, пожалуйста, проигнорируйте это.)
Ответ №2:
Вы можете использовать триггер больших двоичных объектов или привязку ввода, чтобы загрузить большой двоичный объект в память вашей функции для обработки PDFBox.
Что касается локальной файловой системы, вы можете прочитать о ней подробнее здесь. Из описания вашей проблемы я думаю, что для вас должно быть достаточно триггера blob или привязки ввода.