我有一个网站要托管成千上万张图片。而且,每张图片的大小都不同,具体取决于您在网页上的位置 - 在列表页面上,图像显示为350x200矩形,在侧边栏上显示为100x100等。
因此,当用户上传一张图片到网站时,我会保留原始图片,并为每种尺寸制作4个缩小版本。因此,如果有100个用户上传图像,则结果将是500个图像。我甚至无法想象针对不同移动设备的不同尺寸会发生什么...
我开始使用CloudFront进行优化速度。当用户上传图像时,我会将原始图片和缩小的副本上传到Amazon S3桶中。但是,如果明天我决定添加另一个尺寸或更改现有尺寸,则必须运行一个脚本来删除旧的已调整大小的图像,并上传新的已调整大小的图像,这意味着“从S3获取原始文件,调整大小,上传新的大小”。这根本不实际。想象一下,当我对网站进行完全重新设计并且图像尺寸完全改变时,我需要运行一个脚本来将每个图像调整为新要求并删除旧图像。
是否有更实用的方法来实现?
我想实现以下方案:
当用户上传图像时,我会将其调整大小并上传到S3
CloudFront将获取直接调整大小的图像
当我添加另一个尺寸时,我希望CloudFront看到S3上缺少此尺寸,并从我的网站源中提取它。
我无法想出实现这一点的方法。任何帮助或分享最佳做法都将不胜感激。
因此,当用户上传一张图片到网站时,我会保留原始图片,并为每种尺寸制作4个缩小版本。因此,如果有100个用户上传图像,则结果将是500个图像。我甚至无法想象针对不同移动设备的不同尺寸会发生什么...
我开始使用CloudFront进行优化速度。当用户上传图像时,我会将原始图片和缩小的副本上传到Amazon S3桶中。但是,如果明天我决定添加另一个尺寸或更改现有尺寸,则必须运行一个脚本来删除旧的已调整大小的图像,并上传新的已调整大小的图像,这意味着“从S3获取原始文件,调整大小,上传新的大小”。这根本不实际。想象一下,当我对网站进行完全重新设计并且图像尺寸完全改变时,我需要运行一个脚本来将每个图像调整为新要求并删除旧图像。
是否有更实用的方法来实现?
我想实现以下方案:
当用户上传图像时,我会将其调整大小并上传到S3
CloudFront将获取直接调整大小的图像
当我添加另一个尺寸时,我希望CloudFront看到S3上缺少此尺寸,并从我的网站源中提取它。
我无法想出实现这一点的方法。任何帮助或分享最佳做法都将不胜感激。
imagecopyresampled()
方法之一。另一个例子可以参考https://stackoverflow.com/a/30573825/2836621。 - Mark Setchell