從 Power Apps 連線 Azure Blob 儲存體
Power Apps 可連線至 Azure Blob 儲存體。 您可以使用 Power Apps 的 Azure Blob 儲存體連接器 上傳 Word、Excel 等檔案,或多媒體圖像、音訊或影片。
當您設計連線至 Azure Blob 儲存體的畫布應用程式時,該應用程式將使用 Blob 儲存體帳戶名稱和密鑰進行連線。 與他人共用應用程式後,使用者可使用應用程式內設定的連線將檔案上傳至 Azure Blob 儲存體,而無需與應用程式使用者共用 Blob 儲存體名稱和密鑰。
在本文中,您將了解如何建立連線至 Azure Blob 儲存體的範例畫布應用程式,並將控制項新增至該應用程式,使您可將不同類型的文件上傳到連線的 Azure 儲存體中。
注意
若要了解 Power Apps 其他類型的雲端儲存空間 (例如 OneDrive、商務用 OneDrive、Google Drive、Dropbox 或 Box),請移至從 Power Apps 連線至雲端儲存空間。
先決條件
在開始之前,請先建立並設定 BlockBlobStorage 帳戶。 您也可以使用舊版 BlobStorage 帳戶,但我們不建議這樣做。 詳細資訊:Azure Blob 儲存體中的儲存體帳戶類型
建立 Azure Blob 儲存體連線
Power Apps 要求建立與 Azure Blob 儲存體的連線,然後該應用程式才能連線至儲存體。
若要建立 Azure Blob 儲存體連線:
登入 Power Apps。
在左側窗格上展開資料。
選取連接。
選取新增關係。
選取 Azure Blob 儲存體。
複製並貼上帳戶名稱和存取金鑰。
如需如何複製帳戶名稱和存取金鑰的詳細資訊,請移至在 Azure 中查看帳戶存取金鑰。
選取 建立。
現在,您已設定好與 Azure Blob 儲存體的連線,可搭配畫布應用程式使用。
建立具有 Azure Blob 儲存體連線的畫布應用程式
您已建立與 Azure Blob 儲存體的連線,讓我們建立連線至此儲存體的畫布應用程式。
注意
在本章節中,您將建立具有範例控制項、功能和版面配置的範例應用程式。 根據您的業務需求,您可以建立具有不同結構的應用程式,也可以進行不同的自訂。
建立名稱為「Azure Blob 儲存體範例應用程式」和手機配置的空白畫布應用程式。
在 Power Apps Studio 中,從左窗格選取。
選取新增資料。
從連接器列表中,選擇 Azure Blob 儲存體。
檢視容器和檔案
您已將應用程式連線至 Azure Blob 儲存體,現在讓我們新增資源庫,以查看已連線儲存體中的容器和容器中的檔案。
選取插入 -> 資源庫 -> 空白垂直。
在螢幕右側的屬性窗格上,選取版面配置下拉式清單,並選取標題。
選取第一個 在庫中,然後將它刪除。
在螢幕右側的屬性窗格上,選取資料來源的下拉式清單,並選取 Azure Blob 儲存體。
將資源庫的項目屬性設為︰
AzureBlobStorage.ListRootFolderV2().value
此作業將列出 Azure Blob 儲存體根資料夾中的 Blob。 詳細資訊:列出根資料夾中的 Blob
選取插入 -> 資源庫 -> 空白垂直,以新增其他空白垂直資源庫。
將資源庫移至先前新增且顯示容器清單的資源庫下。
在螢幕右側的屬性窗格上,選取版面配置下拉式清單,並選取標題、子標題和本文。
選取第一個 在庫中,然後將它刪除。
在螢幕右側的屬性窗格上,選取資料來源的下拉式清單,並選取 Azure Blob 儲存體。
將資源庫的項目屬性設為︰
AzureBlobStorage.ListFolderV2(Gallery1.Selected.Id).value
此作業會在容器中列出 Blob。 詳細資訊:列出 Blob
注意
此公式中的 Gallery1 會參照先前新增且列出儲存體帳戶中所有容器的資源庫。 如果項目不同,請使用資源庫名稱更新公式。
在螢幕右側的屬性窗格上,為欄位選取編輯。
將資源庫標題的所選欄位變更為 DisplayName,子標題變更為 LastModified,並將本文變更為路徑。
資源庫就會顯示使用頂端資源庫選取之容器的檔案清單。
選取插入 -> 文字標籤。
將標籤放在應用程式畫面頂端。
將標籤的文字屬性設為「選取容器」。
使用畫面右側的屬性窗格,然後選擇所需的標籤文字色彩、大小和標籤文字背景色彩。
選取插入 -> 文字標籤。
將標籤放置在具有檔案清單的資源庫上方。
將標籤的文字屬性設為「檔案清單」。
將檔案上傳至 Azure Blob 儲存體
到目前為止,您可以使用應用程式設計選取容器,然後列出該容器的檔案。
讓我們使用控制項和邏輯設定應用程式,以允許將檔案上傳至已連線的 Azure Blob 儲存體。
選取插入 -> 媒體 -> 新增圖片,以增加選取上傳檔案的功能。
調整新增圖片控制項的大小,並將其放在應用程式畫面左下角。
將控制項的 Text屬性設為「選取要上傳的檔案」。
選取插入 -> 按鈕。
將按鈕放在應用程式畫面的右下角。
將按鈕的文件屬性設為「上傳」。
選取插入 -> 文字插入。
將文字輸入控制項放在上傳按鈕上方。
將按鈕的預設屬性設為「輸入檔案名稱」。
將按鈕的 OnSelect 屬性設為:
AzureBlobStorage.CreateFile(Gallery1.Selected.Name,TextInput1.Text, UploadedImage1.Image)
此作業會將 Blob 上傳至 Azure Blob 儲存體。 其他資訊:建立 Blob
注意
此公式中的 Gallery1 會參照先前新增且列出儲存體帳戶中所有容器的資源庫。 該檔案將上傳至資源庫 1 的所選容器中。 TextInput1 和uploadImage1 參照文字輸入和上傳圖像控制項。 如果項目不同,請使用控制項名稱更新公式。
現在,範例應用程式中的應用程式控制項看起來會像這樣。
提示
使用上傳選項時,請務必選取所有檔案,以確保檔案總管對話方塊中顯示所有檔案類型。
從 Azure Blob 儲存體下載檔案
到目前為止,您已新增了查看容器、所選容器中的檔案的功能,以及將文件上傳到儲存體的選項。 現在,讓我們了解如何在連線的儲存體上使用下載功能。
選取資源庫中包含容器檔案清單的第一資料列。
選取插入 -> 圖示 -> 下載。 這將為資源庫中的所有資料列新增下載圖示。
將第一個下載圖示移至應用程式畫面上資源庫的右側。 這也會移動資源庫中下一列的其餘圖示。
將下載圖示的 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 畫面屬性),更新第二個資源庫。
將第一個資源庫的 Items 屬性設為 "TopLevelList"。
附加到上傳按鈕 OnSelect 屬性:
ClearCollect(TopLevelList, AzureBlobStorage.ListRootFolderV2().value)
新增至畫面 OnVisible 屬性:
ClearCollect(TopLevelList, AzureBlobStorage.ListRootFolderV2().value)
限制
當檔案儲存在 Azure Blob 儲存體中時,不能使用 Microsoft Excel 作為資料來源。 若要將 Excel 作為資料來源,請使用其他雲端儲存連接器 (例如 OneDrive、商務用 OneDrive、Google Drive、Dropbox 或 Box)。 詳細資訊:從 Power Apps 連線至雲端儲存體