我們的應用程序允許用戶通過網絡瀏覽器上傳文件。文件名稱被映射到一個GUID並且blob名稱變爲GUID。當用戶點擊我們應用程序中的文件時,它應該使用原始文件名而不是GUID blob名稱下載到他們的文件系統(顯示另存爲等)。Azure blob,控制文件名下載
我發現這篇文章和描述如何在通過共享訪問簽名下載時設置blob上的Content-Disposition的類似帖子。
Friendly filename when public download Azure blob
然而,我們的情況有一點不同。我們在容器級別設置了一個SAS(從技術上講,這稱爲「共享訪問策略」,我相信 - 在任何給定時間您最多可以有5個)。當下載的blob,我們只需將SAS追加到URI的末尾,使用...
window.location.href = blobUri + containerSAS;
...下載團塊。這下載blob,但使用GUID文件名。
我們如何才能採用適用於Container的現有SAS並將blob下載作爲原始文件名?
請記住,這是適用於在個人BLOB一個SAS略有不同的使用情況......
- 的SAS是在容器層級(看來這是最好的做法與個別SAS的每個blob)。
- 我們從JavaScript下載(而不是C#代碼,您可以在其中設置標題)。
我試圖在上傳過程(PUT操作)期間設置blob的Content-Disposition,但是當我下載blob時似乎沒有什麼區別。在下面,您可以看到爲PUT請求(來自Fiddler)設置的Content-Disposition頭。
謝謝!
您是否可以使用容器訪問策略在blob上生成SAS,或者是否必須使用容器SAS令牌? –