0

我正在使用attachment_fuRMagick在 Rails 应用程序上上传/调整图像大小。目前我使用本地文件系统作为存储,但我计划使用 AWS S3 来完成这项工作。无论如何,我很想知道其他人在使用 S3 方面的经验,还有一个大问题要问你。在我的应用程序中,当用户上传图像时,我将此图像调整为 5 种不同的尺寸,并将它们与原始图像一起存储。(共 6 张图像)基于模型中提供的缩略图大小:

 :thumbnails => { 
                 "thumb" => "120x80",
                  "extra_small"=>"480x320",
                  "small"=>"640x480", 
                  "medium" => "800x533",
                  "large"=>"2738x1825", 
                  "extra_large" => "3464x2309" 

最后我得到:

  • image_foo.jpg (原图)
  • image_foo_thumb.jpg
  • image_foo_extra_small.jpg
  • image_foo_small.jpg
  • image_foo_medium.jpg
  • image_foo_large.jpg
  • image_foo_extra_large.jpg

我重新调整这些图像大小的原因是我需要将每个图像的实际大小存储在数据库中。但实际上,即使我指定了缩略图的尺寸,我也没有得到确切的尺寸。无论如何都可以,因为大小是根据纵横比计算的。

但是如果我可以计算缩略图大小而不将它们保存到文件系统,我真的不喜欢浪费服务器上的空间。换句话说,我只需要存储原始文件而不是缩略图,但我仍然需要获取缩略图的大小。是否可以在不在 RMagick 中创建缩略图的情况下获得实际的缩略图大小?

4

1 回答 1

2

S3 上的空间相对便宜。所以我不会太担心。但是,您可以考虑将图像转换为更小的尺寸。您可以保留 small 和 extra-small 并使用 HTML img 标签的 width 和 height 属性。但是,这会使您的侧面加载速度变慢并导致更多流量。

我猜您真正要寻找的是一种解决方案,可以在请求文件时即时转换文件,对吗?我不确定是否有现成的解决方案。但是,这将是一个主要的性能问题。

所以我的建议是坚持所有不同的尺寸,多付几美分给亚马逊。这将产生最佳性能并且最容易维护。您不必担心扩展,而且存储越来越便宜这一事实适用于该解决方案。

于 2010-03-01T19:49:18.293 回答