最小化Azure存储出站数据成本的策略
我正在建立一个网站(除其他外)允许用户通过网络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)的数据都会产生出站传输成本,其中包括通过您的网站提供的数据.
是.请记住,浏览器正在使用位于Azure DC之外的数据.
不会.因为数据最终流出Azure DC(无论是直接通过存储还是通过web api都无关紧要).
通过提供直接访问blob存储而不是通过web api传输数据,您肯定会获得更多性能优势.另外,您还会增加延迟. 解决方案建议 对于您的应用程序,我建议您查看Azure Blob Storage提供的 对于上传,您可以创建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存储中读取图像数据,然后将该数据流回客户端浏览器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – mvc4数据注释比较两个日期
- asp.net – 输出缓存使用BOTH varybyparam和varybycustom
- asp.net-mvc – EntityFramework – 连接字符串在哪里?
- 预编译的ASP.NET Web应用程序:错误“System.Web.HttpExcep
- C#输入的字符串只包含汉字
- asp.net – 在IIS中将WebAPI添加为子/嵌套应用程序
- asp.net-mvc – [Authorize(Users =“*”)]在asp.net mvc中
- asp.net-mvc – 如何使用NHibernate Envers记录当前用户
- [和管子对话] 2 2007-4-6/抽象类和接口的谁是谁非
- asp.net – 如何删除特定页面中的cookie?
- 获取Uploadify以使用asp.net-mvc
- ASP.NET requestValidation 4.5和WIF
- asp.net – 使CustomValidator与ValidationSumma
- asp.net-identity – 为什么一个站点的ASP.NET身
- asp.net-mvc – N2 for MVC – 如何让Zones工作?
- ASP.NET自定义错误,除了404错误,
- asp.net-mvc – 绑定到Viewmodel的文件上传
- asp.net-mvc – 如何与Entity Framework创建外键
- asp.net – Web服务互操作性 – wsdl复杂类型扩展
- ASP.NET MVC下Ajax.BeginForm方式无刷新提交表单