我正在使用CMS,我正在尝试找出执行REST样式图像请求的常见做法。我有三种尺寸,小,中,全。我的想法是只存储完整并编写一个将在每个页面请求上调整大小的函数。这有明显的CPU成本。另一端是我可以存储所有三种尺寸并且只在上传时计算,这似乎浪费了空间。
我的环境是一个内部网,因此请求相对较少,并且存储了大量图像。想法?
注意:我意识到我不必太担心,因为它是内联网,任何一个解决方案都可以工作,只是想知道哪个是出于知识的首选。
答案 0 :(得分:3)
另一种选择是维护已调整大小的图像的缓存。提供可用的服务。如果它们不可用,请创建新的。删除暂时未请求的图像。
这将是CPU和存储问题之间的妥协。
答案 1 :(得分:1)
存储完整,然后根据需要生成其他大小并缓存它们;在第一个请求中,页面处理将减慢一点,但随后缓存的版本将用于所有后续请求。
答案 2 :(得分:1)
由于您认为会存储许多图像而请求的次数不多,所以我会选择调整大小的解决方案,因为它听起来像已经知道存储空间将会是一个更大的问题。
如果您想获得想象,可以设置 n 最常见的已调整大小的图像的MRU(最近使用过的)缓存,但同样,如果请求数量很少,则可能有点矫枉过正 - 但仍然可能是一个有趣的项目! ;)
答案 3 :(得分:1)
REST的关键点之一和对标准HTTP谓词的使用是它支持缓存;我认为这将支持动态调整大小的意图。不过,这确实是存储空间与请求时计算的权衡问题。
答案 4 :(得分:0)
如果系统负载不是问题(假设内容网应用程序数量较少),我会选择存储完整大小的图像并在运行时进行缩放。这样,如果您需要其他尺寸,则无需更换所有图像。
但如上所述,了解权衡并对系统负载,磁盘空间,需求变化的可能性等做出一些好的估计。
答案 5 :(得分:0)
你自己回答了这个问题,这是CPU空间的权衡。 您知道每条路径的成本,只要问问自己,哪种资源对您来说成本更高。