如何使用labview应用程序检索存储在azure或一个驱动器中的文件?

问题描述

我想构建一个labview应用程序启动器,它可以检查主应用程序版本并最终下载和更新存储在我的onedrive中甚至以某种方式在azure中的.exe文件

我说 azure 是因为我认为它必须有一个选项......但我无法获得正确的关键字

有人可以分享一些技巧吗?

解决方法

LabVIEW 作为一个更高级别的应用程序的好处是它让您可以访问这个小 vi: System Exec VI implementation

这是 System Exec VI,它允许您从 LabVIEW 中运行通用命令行脚本。因此,如果您可以找到强制同步的 Windows 命令或 batch file,那么您可以与外部程序交互。 那里的示例批处理文件应该可以与 OneDrive 一起使用,但稍微搜索一下,您应该能够找到可以与 Azure 一起使用的内容。

附言查看 LabVIEW 中的“Command Line Execution.vi”示例,了解有关此 vi 工作原理的更多信息。

,

我编写了类似的代码,用于从 AWS S3 下载和安装新版本。这是一个真正的节省时间,值得努力工作。

我没有与 OneDrive 进行过交互,但从文档来看,它看起来比 AWS S3 容易一些,因为 Microsoft accepts OAuth2 tokens 与更复杂的 AWS Signature Version 4。如果您使用 LabView,则需要使用 HTTP 客户端功能与远程服务交互。我建议从 JKI HTTP REST API client toolkit 开始。该工具包通过维护连接池来解决 HTTPClient:OpenHandle 函数中的一个缺陷(它是全局阻塞的!)。

微软的文档看起来不错;基本上你要做的是打开一个到授权端点的 HTTP 会话,请求一个访问令牌,关闭 HTTP 会话,打开一个到 OneDrive 端点的 HTTP 会话,将令牌格式化为 Authorization: bearer 标头,添加标头会话,提交 list file request,找到您的文件,提交 download request,将输出保存到文件,关闭 http 会话。

在此过程中,您需要解析 API 的 JSON 响应。由于 NI 的内置 JSON 解析器相当不灵活,我推荐 JKI JSON。这两种 JKI 工具都可以通过 VIPM 轻松安装,后者在最新版本的 LabView 中默认安装。