我一直在阅读很多关于动态图像处理,存储和内容交付的内容,我正在为之工作的公司已经使用AWS来提供他们的一些服务.
我正在处理的应用程序,将文档图像存储到S3存储桶(不限于此),我需要按需显示它们.
此应用程序的第一个版本,在本地存储图像,并在同一服务器上按需执行图像处理.
现在,文档存储已经增加并且存储了大量图像,所有这些都通过Web应用程序存储,这意味着一个用户可以上传说100多个图像,并且服务器需要尽可能快地处理它们.
这就是为什么图像被上传到EC2实例并在内部流式传输到S3存储桶的原因,这就是我们首先保存原始图像的方式,这里没有缩略图来加速上传过程.
然后,不同的用户可能想要预览此图像或以原始大小查看它们,这就是为什么我需要动态调整它们的大小,我将在重新调整大小后实现Cloudfront以进行图像缓存,这就是问题所在.
工作流程如下:
1. User Request CDN image
2.a Cloudfront Serves the cached image
2.b Cloudfront request the image to a custom origin if its not cached
3. The origin server query S3 for the image
4.a If the image size exists on S3
5. Return the image to Cloudfront, Cache and return to user
4.b If the image size does not exists on S3
5. Generate a image size from the original S3 image
6. …Run Code Online (Sandbox Code Playgroud)