微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从数据库中获取二进制内容或通过存储服务中的链接获取内容

如何解决从数据库中获取二进制内容或通过存储服务中的链接获取内容

对于应用(网络 + 手机),有两种选择:

  1. 数据库中的图像二进制文件。服务器以 base64 格式回复应用 HTTP 请求
  2. 存储服务中的图像,例如 Amazon S3Azure Blob Storageself-hosted数据库中的图像链接。服务器通过仅发送回图像链接来处理应用程序 HTTP 请求。该应用通过链接从存储中获取图像

2 options

以上哪个选项是标准做法?哪一个以后的麻烦更少?

解决方法

在某种程度上,这个问题的答案总是基于意见,部分取决于具体用例。

我认为第二种方法使用得更频繁。一个原因是,在许多情况下,数据库中的存储通常比文件存储稍贵。另外,真正的用例是什么?假设您使用通过 img 元素或通过 CSS 作为背景图像引用图像的 HTML 页面,那么 base64 返回值不会那么有用,并且 OTOH 图片底部更复杂的图形会变得有点从客户端的角度来看更简单:链接的解析将由服务器在生成 HTML 时解析并确定 srcimg,然后浏览器将简单地应用标准的 HTML 逻辑和请求通过 HTTP 从存储服务获取图像数据。

但是,如果您想优化加载时间(并且您的图像每页或多或少是唯一的,这样浏览器跨页面缓存图像将无济于事),那么您可以使用嵌入到 HTML 中的数据 URL,然后第一种方法可能有用。在这种情况下,包括在 HTML 中生成数据 URL 在内的所有逻辑都将在服务器上处理,浏览器将只有一个 http 请求。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。