基于安全和性能视角的图片加载接口设计(相册与网盘服务)

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 背景 移动端app, 对于图片的加载是必不可少的一个需求之一,在我们开发的app中可能对于图片的资源有一定的安全需求,图片的地址是需要app业务服务这边做过签名等机制才允许访问使用,基于这个我们使用阿里云oss的签名方式来使用,服务端将签好名的地址直接图给客户端,即可加载成功,但是这样在客户端场景中使用上还是有一些比较难受的痛点。

背景

移动端app, 对于图片的加载是必不可少的一个需求之一,在我们开发的app中可能对于图片的资源有一定的安全需求,图片的地址是需要app业务服务这边做过签名等机制才允许访问使用,基于这个我们使用阿里云oss的签名方式来使用,服务端将签好名的地址直接图给客户端,即可加载成功,但是这样在客户端场景中使用上还是有一些比较难受的痛点。

1.客户端需要关心图片签名地址的失效时间。
2.图片地址在每次重新获取时,都是不一样的,因此客户端无法做一层本地cache
3.客户端需要不断的去获取新地址,然后再发起加载图片的动作,增加了部分网络消耗

解决方案

简单的流程图
image

我们上传成功后,每个图片都有对应的id
1.通过上边这个流程下来,我们对外提供一个获取缩略图的接口,此接口客户端通过拼接id即可调用,客户端就可以成功加载图片。
2.接口本身是有权限token机制控制,这块需要客户端传递,统一登录获取的,过期可以统一处理。
3.通过这种方式,生成的图片加载地址,同一个图片是不会变的,因此客户端也可以进行cache,大大提升了客户端的加载速度。
4.后端也可以做到对请求的信息的统计,中间可以做很多安全的事情,如对热点数据的统一处理,也可以做一些流量限制的事情。

改造后的对比:

1.开发复杂度上,几乎对于客户端开发同学来说,什么都不需要关心了,只需要关心拼接地址即可。
2.对于客户端来说请求一次即可,并且有了cache,大大降低了流量损耗,提升了近30%的加载效率。
3.节省了图片列表接口返回信息的大小,因为原先的url还是比较长的,列表页返回的response相对多一些。

不足之处

目前的接口仍有不足之处,首先接口必须通过header方式将鉴权信息传进来才可使用, 这个导致前端网页标签方式加载图片无法使用。

目录
相关文章
|
数据库
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(下)
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(下)
75 0
|
存储 消息中间件 Java
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(上)
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务
122 0
|
8月前
|
存储 缓存 安全
基于iOS平台的高效图片缓存策略实现
【4月更文挑战第22天】 在移动应用开发中,图片资源的加载与缓存是影响用户体验的重要因素之一。尤其对于iOS平台,由于设备存储空间的限制以及用户对流畅性的高要求,设计一种合理的图片缓存策略显得尤为关键。本文将探讨在iOS环境下,如何通过使用先进的图片缓存技术,包括内存缓存、磁盘缓存以及网络请求的优化,来提高应用的性能和响应速度。我们将重点分析多级缓存机制的设计与实现,并对可能出现的问题及其解决方案进行讨论。
|
3月前
|
缓存 应用服务中间件 区块链
PbootCms上传图片变模糊、上传图片尺寸受限的解决方案
PbootCms上传图片变模糊、上传图片尺寸受限的解决方案
|
8月前
|
存储 缓存 编解码
实现iOS平台的高效图片缓存策略
【4月更文挑战第23天】在移动应用开发领域,尤其是图像处理密集型的iOS应用中,高效的图片缓存策略对于提升用户体验和节省系统资源至关重要。本文将探讨一种针对iOS平台设计的图片缓存方案,该方案通过结合内存缓存与磁盘缓存的多层次结构,旨在优化图片加载性能并降低内存占用。我们将深入分析其设计理念、核心组件以及在实际场景中的应用效果,同时对比其他常见缓存技术的优势与局限。
|
6月前
|
测试技术 API
在线图片生成工具:定制化占位图片的利器
摘要:占位图片在网页设计中用于布局和样式展示,加载性能测试及响应式设计验证。在线图片生成工具(如[amd794.com/placeholder](https://amd794.com/placeholder))提供定制尺寸、样式和格式的功能,帮助开发人员高效创建占位图,提升开发效率和协作效果。该工具支持API调用,方便设置图片属性并生成或下载。
112 1
如果网站需要维护,背景图可以设计成这样
如果网站需要维护,背景图可以设计成这样
|
8月前
|
存储 缓存 算法
构建安卓应用的高效图片加载策略
【4月更文挑战第16天】在移动设备上优化用户体验的关键之一是快速而高效的图片加载。对于Android平台而言,由于设备多样性和网络环境的不稳定性,设计一个既能提升速度又能减少资源消耗的图片加载策略尤为重要。本文将深入探讨在Android应用中实现图片加载的几种技术手段,包括图片格式选择、内存缓存、磁盘缓存以及使用第三方库等,旨在为开发者提供一套综合性的解决方案,以实现在不同设备和网络环境下的高效图片加载。
|
存储 编解码 缓存
鹿班 PICASSO 实时渲染引擎的奥秘,如何支撑每秒千万图像访问?
读者受益: 1、鹿班PICASSO实时合图引擎因何而生 2、实时合图引擎如何支撑每秒千万图像访问 3、实时合图引擎应用场景介绍
1403 0
鹿班 PICASSO 实时渲染引擎的奥秘,如何支撑每秒千万图像访问?
|
JavaScript 开发者
ElUpload不好用?一文教你实现一个简易图片上传预览组件
ElUpload不好用?一文教你实现一个简易图片上传预览组件
2501 0