Pki*_*ing 2 wpf azure azure-storage azure-storage-blobs azure-sql-database
我有一个使用Windows Azure作为后端的WPF应用程序.我使用SQL Azure来存储WPF应用程序通过WCF服务访问的数据.我需要能够存储服务器端的二进制文件(例如图像),并想知道存储这些文件的最佳方法是什么.我可以将文件放在SQL数据库中,但我不确定是否建议这样做.让我们假设存储大约2000个文件(总大小约为1GB).经常访问这些文件(最好在客户端上缓存).
有什么建议?
正如@Blam所指出的,Blob Storage是存储大型二进制对象的更好方法.每个blob都有一个看起来像的URI https://mystorage.blob.core.windows.net/somecontainer/someblob.jpg.每个blob可能高达200GB.您可以在SQL Azure中轻松存储blob的URI以及相关的元数据.
然后,您可以选择通过WCF服务返回映像或提供直接访问.对于前者,您基本上从WCF服务实现调用blob存储,以检索blob,然后在WCF响应中返回它.
对于后者,它有点棘手.您可以选择公开或私有blob.公共blob非常适用于徽标,CSS和其他不需要用户权限查看的信息.私有blob需要使用您的存储帐户密钥(您永远不应该给出).但是,使用称为共享访问签名的功能,您可以在查询字符串上提供带有特殊哈希的URL,从而提供临时访问(最多1小时).基本权衡:如果您通过WCF服务进行二进制文件下载,您的代码将像使用任何其他WCF服务一样工作,但您可能会发现自己扩展到Azure VM的多个实例以支持增加的负载.如果您使用共享访问签名,则可能需要修改WPF应用程序以根据URL获取二进制文件.但是,这会占用您的WCF服务,因为您将直接访问Blob Storage以下载二进制内容(这是一个由Windows Azure管理的大规模多租户存储系统).
请参阅此处了解Windows Azure存储定价.每GB不到13美分,它比SQL Azure便宜得多.
| 归档时间: |
|
| 查看次数: |
2296 次 |
| 最近记录: |