首页 > 解决方案 > Rails + S3:解析存储桶并在控制器外部加载图像

问题描述

在我的 Rails 应用程序的控制器中,我有一个函数可以解析我的 S3 存储桶并选择图​​像。它导致页面加载速度变慢,但我喜欢能够在不对所有 URL 进行硬编码的情况下循环遍历存储桶。

这是我所拥有的:

@bucket = S3_BUCKET
@images = []

@bucket.objects.each do |file|
  if file.key.include?("inspiration")
    @images << { url: file.public_url, key: file.key, type: 'file'}
  end
end

有没有另一种方法来实现这一点,所以页面加载速度不会受到影响?

标签: ruby-on-railsamazon-s3

解决方案


由于您确实无法调节访问 s3 存储桶的速度,我建议您在 Amazons Cloudfont 上设置一个 CDN(内容交付网络)。请看一下这篇由 Brandon Hikert 撰写的关于实施 CDN 的文章

 https://brandonhilkert.com/blog/setting-up-a-cloudfront-cdn-for-rails/

旁注 - 如果您想要一个免费的 CDN 选项,我会使用

 https://cloudinary.com/pricing

参考何时在 s3 上使用 CDN

 https://stackoverflow.com/questions/3327425/when-to-use-amazon-cloudfront-or-s3

推荐阅读