从 Power Apps 连接到 Azure Blob 存储

Power Apps 可以连接到 Azure Blob 存储。 可以使用 适用于 Power Apps 的 Azure Blob 存储连接器上传 Word、Excel 或多媒体图像、音频或视频等文件。

设计连接到 Azure Blob 存储的画布应用时,该应用使用 Blob 存储帐户名称和密钥进行连接。 与他人共享应用后,用户可以使用应用内配置的连接将文件上传到 Azure Blob 存储,而无需与应用用户共享 Blob 存储名称和密钥。

本文介绍如何创建一个连接到 Azure Blob 存储的示例画布应用,并将控件添加到允许将不同类型的文件上传到连接的 Blob 存储的应用。

注释

若要了解有关 Power Apps(例如 OneDrive、OneDrive for Business、Google Drive、Dropbox 或 Box)的其他类型的云存储选项的详细信息,请转到 从 Power Apps 连接到云存储

先决条件

在开始之前,请创建并配置 BlockBlobStorage 帐户。 也可以使用旧版 BlobStorage 帐户,但不建议这样做。 详细信息: Azure Blob 存储中的存储帐户类型

创建 Azure Blob 存储连接

Power Apps 需要创建到 Azure Blob 存储的连接,以便应用连接到存储。

若要创建 Azure Blob 存储连接,请执行以下作:

  1. 登录到 Power Apps

  2. 在左窗格中,展开 “数据”。

  3. 选择 “连接”。

  4. 选择新建连接

  5. 选择“Azure Blob 存储”。

    新的 Azure Bob 存储连接。

  6. 复制并粘贴帐户名和访问密钥。

    输入存储帐户名称和访问密钥。

    有关如何复制帐户名称和访问密钥的详细信息,请转到 Azure 中的帐户访问密钥

  7. 选择 创建

现在已配置与 Azure Blob 存储的连接,并可供画布应用使用。

使用 Azure Blob 存储连接创建画布应用

创建 Azure Blob 存储的连接后,让我们创建一个连接到此存储的画布应用。

注释

在本部分中,你将创建一个示例应用,其中包含示例控件、功能和布局设计。 根据业务需求,可以创建具有不同结构的应用,也可以以不同的方式进行自定义。

  1. 创建名为“Azure Blob 存储示例应用”和“电话”布局的空白画布应用

  2. 在 Power Apps Studio 的左窗格中,选择 “数据”。

  3. 选择添加数据

  4. 从连接器列表中选择 Azure Blob 存储

    选择 Azure Blob 存储连接。

查看容器和文件

现在,你已将应用连接到 Azure Blob 存储,接下来让我们添加库,以便从连接的存储查看容器中的容器和文件。

  1. 选择“插入-->>空白垂直”。

  2. 在屏幕右侧的“属性”窗格中,选择布局下拉列表,然后选择“ 标题”。

    选择容器的库布局。

  3. 选择第一个 箭头图标。 在库内删除它。

    删除箭头图标。

  4. 在屏幕右侧的属性窗格中,选择数据源的下拉列表,然后选择 Azure Blob 存储

    容器库的数据源。

  5. 将库的 Items 属性设置为:

    AzureBlobStorage.ListRootFolderV2().value
    

    容器列表。

    此作列出了 Azure Blob 存储根文件夹中的 Blob。 详细信息: 列出根文件夹中的 Blob

  6. 选择“插入- ->>空垂直”以添加另一个空白垂直库。

  7. 将库移到前面添加的库下方,显示容器列表。

  8. 在屏幕右侧的“属性”窗格中,选择布局下拉列表 ,然后选择“标题”、“副标题”和“正文”。

  9. 选择第一个 箭头图标。 在库内删除它。

  10. 在屏幕右侧的属性窗格中,选择数据源的下拉列表,然后选择 Azure Blob 存储

  11. 将库的 Items 属性设置为:

    AzureBlobStorage.ListFolderV2(Gallery1.Selected.Id).value
    

    此作列出了容器中的 Blob。 详细信息: 列出 Blob

    注释

    此公式中的 Gallery1 是对前面添加的库的引用,其中列出了存储帐户中的所有容器。 使用库名称(如果不同)更新公式。

  12. 在屏幕右侧的属性窗格中,选择“编辑字段”。

  13. 将库标题的选定字段更改为 DisplayName,将副标题作为 LastModified,并将正文更改为 Path

    选择字段。

    库现在显示顶部使用库选择的容器中的文件列表。

    容器中的文件列表。

  14. 选择 “插入 ->文本”标签

  15. 将标签放在应用屏幕的顶部。

  16. 将标签的 Text 属性设置为“选择容器”。

  17. 使用屏幕右侧的属性窗格,并选择所选的标签文本颜色、大小和标签文本背景色。

  18. 选择 “插入 ->文本”标签

  19. 将标签放在库上方,其中包含文件列表。

  20. 将标签的 Text 属性设置为“文件列表”。

    添加标签的文件列表。

将文件上传到 Azure Blob 存储

到目前为止,通过应用设计,你可以选择容器,然后列出容器中的文件。

让我们使用控件和逻辑配置应用,以允许将文件上传到连接的 Azure Blob 存储。

  1. 选择“插入 -Media ->>添加图片”以添加选择要上传的文件的功能。

  2. 调整 “添加图片 ”控件的大小,并将其放置在应用屏幕的左下角。

  3. 将控件的 Text 属性设置为“选择要上传的文件”。

  4. 选择 “插入 ”->按钮

  5. 将按钮置于应用屏幕右下角。

  6. 将按钮的 Text 属性设置为“Upload”。

  7. 选择 “插入 ->文本输入”。

  8. 将文本输入控件置于 “上传 ”按钮上方。

  9. 将按钮的默认属性设置为“输入文件名”。

  10. 将按钮的 OnSelect 属性设置为:

    AzureBlobStorage.CreateFile(Gallery1.Selected.Name,TextInput1.Text, UploadedImage1.Image)
    

    此作将 Blob 上传到 Azure Blob 存储。 详细信息: 创建 Blob

    注释

    此公式中的 Gallery1 是对前面添加的库的引用,其中列出了存储帐户中的所有容器。 该文件将上传到库 1 中的所选容器。 TextInput1uploadImage1 引用文本输入和上传图像控件。 使用控件名称(如果不同)更新公式。

    应用控件现在在示例应用中如下所示。

    将文件上传到连接的存储。

    小窍门

    使用上传选项确保所有文件类型在文件资源管理器对话框中可见时,请确保选择“所有 文件 ”。

从 Azure Blob 存储下载文件

到目前为止,你添加了查看容器、所选容器中的文件以及将文件上传到存储的选项的功能。 现在,让我们了解如何使用连接存储的下载功能。

  1. 使用容器中的文件列表选择库中的第一行。

    在文件列表库中选择第一行。

  2. 选择“插入-图标 ->>下载”。 这会为库中的所有行添加下载图标。

  3. 将第一个下载图标移动到应用屏幕上库内的右侧。 这还会移动库中下一行的其余图标。

    移动文件列表库中的第一行。

  4. 将下载图标的 OnSelect 属性设置为:

    Launch(AzureBlobStorage.CreateShareLinkByPath(ThisItem.Path).WebUrl)
    

    此作使用路径为 Blob 创建 SAS 链接。 详细信息: 按路径创建 SAS URI

    重要

    使用 CreateShareLinkByPath 创建的 SAS URI 默认过期 为 24 小时。 如果业务要求在较短或不同的时间内使 URI 过期,请考虑对此公式的更新。 例如,以下示例使用 Now()DateAdd() 函数在 1 小时内使 URI 过期。

    Launch(AzureBlobStorage.CreateShareLinkByPath(ThisItem.Path,{ExpiryTime:DateAdd( Now(),1)}).WebUrl)
    

    小窍门

    有关为公共匿名访问配置 Azure Blob 存储以及不同的公共访问级别的详细信息,请转到 配置容器和 Blob 的匿名公共读取访问权限

应用现在能够让你下载文件。

测试、保存、发布和共享应用

播放应用进行测试,并验证应用是否按预期工作。 测试后,请确保在关闭 Power Apps Studio 之前 保存并发布 应用。 然后,你可以与 组织内的其他人或 组织外部的来宾共享应用。

可选自定义项

在本部分中,你将了解可为应用考虑的可选自定义和其他自定义项。

媒体类型

可以使用库的 “媒体类型”或 “路径” 字段来选择在相应的控件中显示图像内容。 例如, PDF 文件的 PDF 查看器图像 图像或 音频/视频文件的音频/视频

例如,若要筛选扩展名为 .pdf的文件,请使用以下示例公式。

If(".pdf" in Gallery2.Selected.Path, AzureBlobStorage.GetFileContent(Gallery2.Selected.Id))

同样,可以使用不同的文件扩展名类型或媒体类型来额外自定义添加的控件。

刷新连接到 Azure Blob 存储的库

更新数据时,Azure Blob 存储连接不会自动刷新库中的数据。 如果有多个容器,则可以选择另一个容器,然后选择以前选择的容器以刷新连接的库以显示更改。

可以考虑的另一种方法是对第一个库使用集合,然后使用函数 ClearCollect 刷新集合。

例如,以下公式允许更新第一个库中顶部容器列表的集合,并在选择上传按钮或显示屏幕时(OnVisible 屏幕属性)更新第二个库。

  1. 将容器列表的第一个库的 Items 属性设置为“TopLevelList”。

  2. 追加到上传按钮 OnSelect 属性:

    ClearCollect(TopLevelList, AzureBlobStorage.ListRootFolderV2().value)
    
  3. 添加到屏幕 OnVisible 属性:

    ClearCollect(TopLevelList, AzureBlobStorage.ListRootFolderV2().value)
    

局限性

将文件存储在 Azure Blob 存储中时,不能使用 Microsoft Excel 作为数据源。 若要将 Excel 用作数据源,请使用其他云存储连接器(例如 OneDrive、OneDrive for Business、Google Drive、Dropbox 或 Box)。 详细信息: 从 Power Apps 连接到云存储

后续步骤

设计应用界面

另请参阅

从 Power Apps 连接到云存储