簡體   English   中英

最小化Azure存儲出站數據成本的策略

[英]Strategy to minimize Azure storage outbound data costs

我正在建立一個網站(除其他外)允許用戶通過網絡API上傳照片。 用戶圖像將存儲在azure存儲blob中以顯示在用戶相冊中,並與社交媒體共享。 該網站將作為一個天藍色的網站托管。 我渴望盡量減少數據傳輸成本。 據我所知,天藍色網站和桌面/ blob存儲之間的數據傳輸不會導致數據傳輸費用(因為它不被視為“出站”),而且從天藍網站外部請求的數據也是如此。 為此,我有兩種將圖像暴露給瀏覽器的策略:

1.)通過azure存儲中的圖像blob的URI,例如使用本地存儲帳戶http://ipv4.fiddler:10000 / devstoreaccount1 / bcb2ad7581.jpg

2.)通過web api從存儲中下載圖像字節並返回它們。 例如,使用本地主機http:// localhost:58559 / api / image / bcb2ad7581.jpg

這些是我的假設。 直接到存儲訪問(上面的方法1)更有效。 通過web api訪問圖像(上面的方法2)必然會產生直接訪問不會產生的開銷,對吧? 每個web api請求必須使用asp .net線程和cpu周期。 對於處理的每個web api映像請求,對於站點上不能且必須排隊的其他web api資源的請求少一個。 另一方面,與圖像共享的任何外部站點將為每個圖像請求添加數據傳輸成本(以及其他成本); 如果通過方法1訪問。

因此,我的策略是通過直接鏈接訪問存儲中的圖像(方法1),例如,當用戶打開相冊時,所有標簽都在其src屬性中具有azure blob uri。 但是,當用戶點擊Facebook圖標進行分享時,我將通過web api提供圖像鏈接(方法2)。 我意識到用戶可以使用像“PinIt”按鈕等插件來繞過所有這些,但這沒關系。

我只是在學習這些東西,所以我可能會離開。 我是否錯誤地將出境轉移費用應用於天藍網站? 我不認為我是,但至少可以說整個定價模式令人困惑。

從帶有標記和src屬性的瀏覽器html頁面訪問blob存儲,考慮出站數據傳輸; 即使html頁面來自azure網站域名? 我的意思是它只在服務器端代碼訪問存儲而不是html客戶端時才是免費的嗎?

是否通過方法2(如果確實存在)節省了任何數據傳輸成本,只需通過與web api方法相關的不同成本(如帶寬成本)取消?

我是否錯誤地認為直接訪問blob存儲的性能優勢,或者可能錯誤的是關於web api請求的開銷?

這是設計的早期階段,所以如果必須,我可以轉儲Azure。 我寧願不要,因為我認為這是我正在尋找的。 我不想要任何東西,我很樂意支付我消費的服務。 當然,我不想讓我的無知付出代價。

我可以就此提出你的意見,並真正感謝你的幫助。

回答你的問題:

我是否錯誤地將出境轉移費用應用於天藍網站?

遺憾的是,是的:)任何來自Azure數據中心(DC)的數據都會產生出站傳輸成本,其中包括通過您的網站提供的數據。

從帶有標記和src屬性的瀏覽器html頁面訪問blob存儲,考慮出站數據傳輸; 即使html頁面來自azure網站域名? 我的意思是它只在服務器端代碼訪問存儲而不是html客戶端時才是免費的嗎?

是。 請記住,瀏覽器正在使用位於Azure DC之外的數據。

是否通過方法2(如果確實存在)節省了任何數據傳輸成本,只需通過與web api方法相關的不同成本(如帶寬成本)取消?

不會。因為數據最終流出Azure DC(無論是直接通過存儲還是通過web api都無關緊要)。

我是否錯誤地認為直接訪問blob存儲的性能優勢,或者可能錯誤的是關於web api請求的開銷?

通過提供直接訪問blob存儲而不是通過web api傳輸數據,您肯定會獲得更多性能優勢。 另外,您還會增加延遲。

解決方案建議

對於您的應用程序,我是否可以建議您查看Azure Blob Storage提供的Shared Access Signature功能。 我相信這將顯着提高您的應用程序的性能。

對於上傳,您可以創建SAS URL上傳權限,並讓您的Web應用程序直接上傳blob存儲中的文件。 這樣,上傳數據就不會通過您的服務器進行路由。 我寫了一些你可能覺得有用的博客文章:

http://gauravmantri.com/2013/02/16/uploading-large-files-in-windows-azure-blob-storage-using-shared-access-signature-html-and-javascript/

http://gauravmantri.com/2013/12/01/windows-azure-storage-and-cors-lets-have-some-fun/

要下載圖像,請再次讓Web API返回SAS URL,而不是從blob存儲中讀取圖像數據,然后將該數據流回客戶端瀏覽器。

暫無
暫無

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

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