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

本文涉及的产品
对象存储 OSS,20GB 3个月
云备份 Cloud Backup,100GB 3个月
文件存储 NAS,50GB 3个月
简介: 背景 移动端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方式将鉴权信息传进来才可使用, 这个导致前端网页标签方式加载图片无法使用。

目录
相关文章
|
存储 前端开发 定位技术
前端加载超大图片实现秒开解决方案
前端加载超大图片实现秒开解决方案
|
11月前
|
数据库
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(下)
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(下)
56 0
|
11月前
|
存储 消息中间件 Java
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务(上)
手把手教你云相册项目简易开发day4-上传下载业务逻辑之缩略图上传下载业务和审核业务
99 0
|
5月前
|
存储 缓存 安全
基于iOS平台的高效图片缓存策略实现
【4月更文挑战第22天】 在移动应用开发中,图片资源的加载与缓存是影响用户体验的重要因素之一。尤其对于iOS平台,由于设备存储空间的限制以及用户对流畅性的高要求,设计一种合理的图片缓存策略显得尤为关键。本文将探讨在iOS环境下,如何通过使用先进的图片缓存技术,包括内存缓存、磁盘缓存以及网络请求的优化,来提高应用的性能和响应速度。我们将重点分析多级缓存机制的设计与实现,并对可能出现的问题及其解决方案进行讨论。
|
存储 缓存 Java
mPaaS 3.0 多媒体组件发布 | 支付宝百亿级图片组件 xMedia 锤炼之路 (图片缓存篇)
历经三年的风雨洗礼沉淀,xMedia 多媒体图片加载组件已经成为支付宝重要的驱动力,承载了绝大部分业务,与此同时,我们也通过移动开发平台 mPaaS 对外输出,向外界企业提供稳定的图片加载技术。
2358 0
|
5月前
|
存储 缓存 编解码
实现iOS平台的高效图片缓存策略
【4月更文挑战第23天】在移动应用开发领域,尤其是图像处理密集型的iOS应用中,高效的图片缓存策略对于提升用户体验和节省系统资源至关重要。本文将探讨一种针对iOS平台设计的图片缓存方案,该方案通过结合内存缓存与磁盘缓存的多层次结构,旨在优化图片加载性能并降低内存占用。我们将深入分析其设计理念、核心组件以及在实际场景中的应用效果,同时对比其他常见缓存技术的优势与局限。
|
1月前
|
图形学 开发者 搜索推荐
Unity Asset Store资源大解密:自制与现成素材的优劣对比分析,教你如何巧用海量资产加速游戏开发进度
【8月更文挑战第31天】游戏开发充满挑战,尤其对独立开发者或小团队而言。Unity Asset Store 提供了丰富的资源库,涵盖美术、模板、音频和脚本等,能显著加快开发进度。自制资源虽具个性化,但耗时长且需专业技能;而 Asset Store 的资源经官方审核,质量可靠,可大幅缩短开发周期,使开发者更专注于核心玩法。然而,使用第三方资源需注意版权问题,且可能需调整以适应特定需求。总体而言,合理利用 Asset Store 能显著提升开发效率和项目质量。
40 0
|
5月前
|
并行计算 Linux 异构计算
分享一款刚开源上线3天的音乐人声分离工具!无需联网!页面化操作!
分享一款刚开源上线3天的音乐人声分离工具!无需联网!页面化操作!
|
5月前
|
存储 弹性计算 关系型数据库
阿里云网盘与相册服务提供了丰富的功能和灵活的使用方式
阿里云网盘与相册服务提供了丰富的功能和灵活的使用方式【1月更文挑战第13天】【1月更文挑战第61篇】
88 2
|
12月前
|
编解码 人工智能 前端开发
如何实现丝滑转码?
如何实现丝滑转码?
55 0