Как получить файлы, хранящиеся в azure или на одном диске, с помощью приложения labview?

#azure #download #onedrive #auto-update #labview

Вопрос:

Я хочу создать стартер приложения labview, который может проверить версию основного приложения и в конечном итоге загрузить и обновить файл .exe, который хранится в моем onedrive или даже каким-то образом в azure.

Я сказал azure, потому что я думаю, что с ним должен быть какой-то вариант… Но я не могу подобрать правильные ключевые слова

У кого-нибудь есть какой-нибудь совет, которым можно поделиться?

Ответ №1:

Преимущество того, что LabVIEW является приложением более высокого уровня, заключается в том, что он предоставляет вам доступ к этой маленькой vi: Внедрение System Exec VI

Это System Exec VI, который позволяет запускать общие сценарии командной строки из LabVIEW. Поэтому, если вы можете найти команду Windows для принудительной синхронизации или пакетный файл, вы можете взаимодействовать с внешними программами. Пример пакетного файла там должен работать с OneDrive, но, немного поохотившись, вы сможете найти что-то для работы с Azure.

P.S. Взгляните на «Командную строку Execution.vi» Пример из LabVIEW, чтобы узнать больше о том, как работает этот vi.

Комментарии:

1. Привет! Спасибо за ответ…. Я уже использую этот vi, но я искал, как получить практический доступ к файлу onedrive и загрузить его по определенному пути… Теперь я копаюсь в microsoft graph, чтобы получить api, который выполняет эту работу… Но, во-первых, я не знаю, правильный ли это путь, а во-вторых, я не добиваюсь никакого существенного прогресса…

Ответ №2:

Я написал аналогичный код, который загружает и устанавливает новые версии с AWS S3. Это реальная экономия времени и стоит усилий, чтобы приступить к работе.

Я не взаимодействовал с OneDrive, но из документации это выглядит немного проще, чем AWS S3, потому что Microsoft принимает токены OAuth2 по сравнению с более сложной версией подписи AWS 4. Если вы используете LabVIEW, вам потребуется использовать функции HTTP-клиента для взаимодействия с удаленной службой. Я рекомендую начать с клиентского инструментария JKI HTTP REST API. Этот инструментарий устраняет недостаток в функции HttpClient:OpenHandle (она глобально блокируется!), поддерживая пул соединений.

Документация от Microsoft выглядит довольно хорошо; в основном то, что вы хотите сделать, это открываем http сессию на конечную точку авторизации, запросить маркер доступа, закрыть http-сеанса, открываем http сессию и OneDrive конечной точки, формат токен в Authorization: bearer заголовок, добавить заголовок заседание, представить список файлов по запросу, найти свой файл, отправить запрос, сохранить вывод в файл, закрыть http-сеанса.

По пути вам нужно будет проанализировать ответы JSON API. Поскольку встроенный в NI анализатор JSON довольно негибок, я рекомендую JKI JSON. Оба инструмента JKI проще всего установить с помощью VIPM, который по умолчанию установлен в последних выпусках LabVIEW.

Комментарии:

1. Привет, Роберт, спасибо за поддержку, один вопрос: знак, о котором вы говорите, тот же самый, который я могу получить с этого пути? docs.microsoft.com/it-it/azure/storage/common/…

2. Да, я так считаю: «Вместо этого вы можете запросить маркер доступа OAuth 2.0 с платформы идентификации Microsoft. Azure AD проверяет подлинность участника системы безопасности (пользователя, группы или участника службы), выполняющего приложение».