【发布时间】:2013-06-04 14:16:54
【问题描述】:
我正在建立一个照片共享网站,并使用 amazon s3 进行存储。一切都很好,除了页面呈现缓慢。
当我在页面上有超过 100 张图片,并且请求看起来像 mysite/s3/bucket/image.jpg?w=200 时,这是否意味着首先下载每张图片,然后调整其大小?如果是这样,如何配置缩略图缓存?我似乎无法在文档中找到该信息。
【问题讨论】:
标签: imageresizer
我正在建立一个照片共享网站,并使用 amazon s3 进行存储。一切都很好,除了页面呈现缓慢。
当我在页面上有超过 100 张图片,并且请求看起来像 mysite/s3/bucket/image.jpg?w=200 时,这是否意味着首先下载每张图片,然后调整其大小?如果是这样,如何配置缩略图缓存?我似乎无法在文档中找到该信息。
【问题讨论】:
标签: imageresizer
您需要安装 DiskCache (and possibly SourceDiskCache) 插件。 DiskCache 会将调整大小的图像缓存到磁盘,而 SourceDiskCache 会将 S3 图像缓存到磁盘。
如果您只有几个版本的 S3 映像,输出缓存就足够了,但绝对需要。
考虑 ImageResizer 服务器和 S3 之间的带宽要求也很重要。如果您使用的是 EC2,请确保您与 S3 存储桶位于同一区域。如果您使用的是 VM,请确保您有一个大管道。
瓶颈是总是 I/O。
【讨论】:
<add name="SourceDiskCache" /> 将安装它,如果您在 /bin 中有 DiskCache dll。
Install-Package ImageResizer.Plugins.DiskCache 并将 <add name="SourceDiskCache" /> 添加到 web.config 中的 configuration/resizer/plugins/ 中。仅有的另外两个值是 MvcRoutingShim 和 S3Reader 存储桶。当我调用我的图像并检查存储桶时,我没有看到它被缓存。
scache=disk,或者通过 Rewrite 事件将其自动应用于所有 URL。这将在未来得到改进。
http://localhost:3756/s3/BUCKET/IMAGE.jpg?w=156&h=156&mode=crop&scache=disk。我错过了什么吗?