0

我正在使用 rails 并通过载波插件将图像上传到 AWS。我开始使用 memcached/dalli 缓存图像,它可以正常工作一段时间......但是一段时间后所有图像都显示为损坏(大约 20-30 分钟或使用不同的浏览器时)。

这是一个示例...缓存这组图像,其中 post.avatar_url 是图像的 AWS url。图像通常可以在没有缓存的情况下正常加载……但缓存似乎最终会导致图像损坏。

  <% cache ["homeimages", post] do %>
    <%= link_to image_tag(post.avatar_url), post %>
  <% end %>

是什么导致图像破裂?

谢谢!

4

1 回答 1

0

您是将它们上传为私人还是公共?如果它们是私有的,那么在 20-30 分钟后将无法从该 url 访问它们的原因是图像上的权限令牌(由 avatar_url 方法提供)即将到期,这意味着 S3 将响应 404 file not found .

将图像公开,或尝试类似以下的方法

<% cache(["homeimages", post], :expires_in => 20.minutes) do %>
   <%= link_to image_tag(post.avatar_url), post %>
<% end %>

20.minutes 是访问令牌最后的时间。这意味着缓存永远不会超过令牌。

编辑

您也确实意识到您不是“使用 memecached/dalli 缓存图像”,而是 img 标签?

于 2013-04-06T21:32:04.877 回答