从 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 Blob 存储连接。

  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. 选择插入 -> 媒体 -> 添加图片,添加选择要上载的文件的功能。

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

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

  4. 选择插入 -> 按钮

  5. 将按钮放在应用屏幕的右下方。

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

  7. 选择插入 -> 文本输入

  8. 将文本输入控件放在上载按钮上方。

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

  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() 函数让 URI 在 1 小时后过期。

    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 连接到云存储