簡體   English   中英

用於訪問 Azure 存儲中的私有 blob 的 URL

[英]URL to access private blob in Azure Storage

我們才剛剛開始使用 Azure 存儲。 在我們的場景中,我們上傳到私人 blob,稍后我們需要直接從我們的客戶端應用程序訪問這些 blob,例如圖像。

有沒有辦法使用包含訪問密鑰的 URL 來解決 Azure 存儲中的私有 blob?

篩選 MS 文檔,到目前為止我能找到的只是通過 blob URI 進行簡單的 URL 訪問,例如,當通過 .net API 列出 blob 時,由CloudBlockBlob實例的URI屬性給出。

由於 blob 不是公開的,因此從 Web 瀏覽器自然地訪問它會失敗。
但是,我們是否可以限定 URL 還包含訪問密鑰,以允許授權客戶端訪問 blob..?

這是用於從存儲中讀取 blob 的 API:

https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob

沒有 URL-Parameter 來傳遞訪問密鑰,只有頭值Authorization 因此,您可以手動執行請求,例如將結果數據添加為 base64 編碼圖像。 如果可能的話,我會建議不要這樣做。

您還必須意識到,通過將您的訪問密鑰傳遞給客戶端,無論如何您都有效地公開了您的 blob。 與匿名訪問相比,您的數據將面臨更大的風險,因為訪問密鑰允許比匿名訪問更多的操作。 這也適用於您的 Objective-c 應用程序,即使它在那里更加模糊。 SAS 是通往那里的方法 - 創建一個后端服務,為給定的資源創建一組定義的 SAS 令牌。 然而,這比簡單地在某處混淆完整訪問密鑰要費力得多。

請參閱“匿名用戶可用的功能”:

https://docs.microsoft.com/en-us/azure/storage/blobs/storage-manage-access-to-resources

您可以為私有 blob 生成 SAS URL 和令牌。 以下是在 Azure 門戶中手動生成此內容以測試概念的過程。 即使您的存儲容器是私有的,它也能工作,因為它允許使用在查詢字符串中包含令牌的 URL 對文件進行臨時的、有時間限制的訪問。

單擊存儲容器中的文件,選擇“生成 SAS”選項卡,然后在右側窗格中選擇在此處輸入圖片說明

這將生成一個令牌和一個包含該令牌的 URL,如下所示:

在此處輸入圖片說明

您可以使用curl測試將 URL 作為文件下載。 使用上圖中顯示的第二個 URL(在查詢字符串中包含完整標記和其他參數的 URL),然后執行此操作(重要 - URL 必須用雙引號括起來):

curl "<YOUR_URL>" --output myFileName.txt

提示- 這也是將文件提供給 Azure VM 的好方法,如果您出於任何原因需要直接在 VM 上安裝文件(我需要這樣做來安裝 SSL 證書),您可以生成 URL 然后curl在 VM 上下載文件。 例如,首先使用 Bastion 或 SSH 連接到 VM,然后使用curl將文件下載到某處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM