我们正在Heroku上构建一个Rails应用程序,用户可以上传图像(存储在S3,美国标准区域)。用户可以向朋友发送链接,他们可以将图像作为存档(zip)下载。这个档案必须在飞行中生成 - 每个用户的内容(即哪个图像)与某些“魔术规则”不同。
问题:当朋友打开下载URL时,构建存档需要几秒钟。所有图像(总共约4Mb)必须从S3下载到Rails应用程序,然后打包到存档中。您是否有想法如何加快这一过程,或者您能帮助我评估以下选项吗?
我对缓存策略做了一些简短的基准测试,我尝试从不同的位置下载100Kb:
因此,使用缓存(文件系统,memcached或redis)肯定会提高性能,最终的解决方案可能是结合不同的方法。
你会怎么想?非常感谢您的帮助!