使用 WPF + Windows Azure 存储二进制数据(图像、文件等)

2023-12-10

我有一个使用 Windows Azure 作为后端的 WPF 应用程序。我使用 SQL Azure 存储 WPF 应用程序通过 WCF 服务访问的数据。我需要能够在服务器端存储二进制文件(例如图像),并想知道存储这些文件的最佳方法是什么。我可以将文件放入 SQL 数据库,但我不确定是否建议这样做。假设要存储大约 2000 个文件(总大小约为 1GB)。这些文件被频繁访问(最好缓存在客户端)。

有什么建议么?


正如 @Blam 指出的,Blob 存储是存储大型二进制对象的更好方法。每个 blob 都有一个 URI,如下所示https://mystorage.blob.core.windows.net/somecontainer/someblob.jpg。每个 blob 最大可达 200GB。您可以轻松地将 blob 的 URI 以及相关元数据存储在 SQL Azure 中。

然后,您可以选择通过 WCF 服务返回图像或提供直接访问。对于前者,您基本上可以从 WCF 服务实现中调用 blob 存储来检索 blob,然后在 WCF 响应中返回它。

对于后者,事情会变得有点棘手。您可以选择将 blob 设为公开或私有。公共 blob 非常适合徽标、CSS 和其他不需要用户权限即可查看的信息。私有 blob 需要使用您的存储帐户密钥(您永远不应该泄露该密钥)。然而,使用一个称为共享访问签名,您可以在查询字符串上提供带有特殊哈希的 URL,提供临时访问(最多 1 小时)。基本权衡:如果您通过 WCF 服务下载二进制文件,您的代码将像使用任何其他 WCF 服务一样工作,但您可能会发现自己扩展到 Azure VM 的多个实例以支持增加的负载。如果您使用共享访问签名,您可能需要修改 WPF 应用程序以获取基于 URL 的二进制文件。但是,这会减轻 WCF 服务的负载,因为您随后将直接访问 Blob 存储来下载二进制内容(这是由 Windows Azure 管理的大规模多租户存储系统)。

See hereWindows Azure 存储定价。每 GB 价格低于 13 美分,比 SQL Azure 便宜得多。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 WPF + Windows Azure 存储二进制数据(图像、文件等) 的相关文章

  • 获取我“单击”/“mousedown”的元素的名称

    我有一个页面 其根元素是一个名为的网格Root 我有很多控件 比如TextBlock TextBox Grid Rectangle Border等等 谁是孩子Root 现在 我想要一个MouseDown or PreviewMouseDow
  • 如何覆盖全局样式(没有 x:Key),或者将命名样式应用于所有类型目标控件?

    我声明了一个要应用于项目中所有按钮的样式 该样式位于 ResourceDictionary 中 现在 在某个窗口中 我想继承此样式但添加一个值
  • 如何将此重复的 Azure DevOps 步骤拆分为可重用模板

    我有以下 Azure DevOps 模板 当前已硬编码到某些特定文件 我希望使用循环将其重构为更简单的模板 这样我就不需要复制 和硬编码 特定文件 为了简洁起见 伪代码 tests yml steps pre test steps This
  • 是否可以复制 Azure 网站?

    我想将现有的 共享 模式 开发 网站复制到另一个 测试 共享 模式网站 这可能吗 我知道可以使用 T SQL 命令通过 SQL Azure DB 来完成此操作 此刻我 1 创建新网站 2 跨 Dev Azure 网站的 FTP 来测试 Az
  • WPF RichTextBox 中的只读 Run 元素?

    我可能完全是在想象这一点 但我可以发誓有一种方法可以使 RichTextBox 中的各个 Run 或 Parapgraph 元素成为只读 我还可以发誓 几周前我自己尝试了一种方法 并对结果感到满意 我隐约记得它看起来像这样
  • C# WPF - 应用程序图标 + ShowInTaskbar = False

    我创建了一个具有以下属性的自定义分层 WPF 窗口 允许透明度 True 在任务栏显示 False 背景 透明 最上面 True 图标 图标 ico 我已在 项目属性 gt 应用程序 选项卡下添加了 Icon ico 如果 ShowInTa
  • Windows 更新 KB4040972/73 导致 WPF 类出现黑色图像

    我有一个依赖于深度缩放图像 从 PNG 转换为各种比例的 JPG 金字塔 的应用程序 我们使用 DeepZoomTools dll 来实现 这依赖于PresentationCore dll 多年来一直运行良好 推出 KB4040972 和
  • 使用 Azure SDK 上传 Azure Web 应用程序的 SSL 证书文件 (.pfx)

    如何使用 Azure SDK 上传 Azure 应用服务的 pfx 文件 SSL 证书 里面有一个命令Azure CLI 证书 创建或更新 https learn microsoft com en us rest api appservic
  • 是否可以从 Azure Function 停止/启动 Azure ARM 虚拟机?

    Runbook 可用于停止 启动 Azure 中的经典虚拟机和 ARM 虚拟机 这也可以通过 Azure 函数实现吗 更新此线程的一些好消息 您现在可以在 Azure Functions 中执行此操作 此处基于 HTTP 触发的函数记录了这
  • WPF 用户控件;触发器和更改其他控件

    我创建了一个 WPF UserControl 其中包含一个按钮和一个组合框 我想根据鼠标的位置更改两者的样式 因此鼠标悬停的 UIElement 的颜色为黑色 另一个的颜色为红色 如果两者均未设置样式 则将应用默认样式 别担心 这个噩梦般的
  • 在azure上发布网站时,webjobs被删除

    当我在创建了多个 Web 作业的现有网站上发布网站时 这会删除服务器上的所有文件 并且所有 Web 作业都会被删除 我认为这是因为 webjobs 存储在 App Data 文件夹中 删除 APP Data 目录后 作业也会被删除 发布时如
  • DockPanel 选项卡顺序

    我在 ItemsControl 的 DataTemplate 中设置了一个 DockPanel 如下所示
  • Prism 应用程序关闭时不退出

    我正在学习棱镜 我遇到了一个问题 我制作了一款应用程序 与 Mike Taulty 制作的关于 Prism 的精彩教程中的应用程序非常相似 最大的区别是我的应用程序是 WPF 应用程序而不是 Silverlight 我发现我遇到了问题 当我
  • wpf C# 中的内存泄漏

    我正在使用 GalaSoft MvvmLight 套件和 WPF Toolkit 开发 WPF MVVM v3 5 中 应用程序DataGrid and DatePicker 但是 每次加载应用程序时 我都会面临应用程序中的大量内存泄漏Us
  • Azure Functions 如何横向扩展?

    The Azure Functions 的扩展文档 https azure microsoft com en us documentation articles functions scale 详细介绍了 Azure Functions 如
  • WPF 我应该如何评估属性路径?

    我正在编写一个自定义控件 并且我有一个字符串形式的属性路径 认为comboBox SelectedValuePath 代码中评估任意对象的该字符串的最佳方法是什么 显然我可以自己解析它 但这是一个黑客 我希望路径支持一切comboBox S
  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • Azure DevOps 不会从 ZIP Deploy 发布 Web 应用程序,而是将其作为只读 ZIP 包运行

    我们有一个 Azure DevOps Pipeline 以 ZIP 包的形式运行我们的应用程序https learn microsoft com en us azure app service deploy run package http
  • 找不到 securityToken 的有效键映射

    我正在开发测试应用程序 用于在 MVC ASP net Visual studio 2013 中显示经过身份验证的身份声明 我已通过以下方式从活动目录进行身份验证 1 在解决方案中添加新的mvc项目 2 单击更改身份验证 3 选择组织账户

随机推荐