Rails + S3: разобрать корзину и загрузить изображения за пределы контроллера - PullRequest
0 голосов
/ 30 августа 2018

В контроллере моего приложения на 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

Есть ли другой способ сделать это, чтобы скорость загрузки страницы не пострадала?

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Поскольку вы действительно не можете регулировать скорость, с которой вы получаете доступ к своей корзине s3, я бы предложил настроить CDN (сеть доставки контента) на Amazons Cloudfont. Пожалуйста, взгляните на эту статью, написанную Брэндоном Хикертом о внедрении CDN

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

Примечание: если вы хотите использовать бесплатную опцию CDN, я бы использовал

 https://cloudinary.com/pricing

Ссылка на использование CDN поверх s3

 /2779780/kogda-ispolzovat-amazon-cloudfront-ili-s3
0 голосов
/ 30 августа 2018

Как оказалось, файлов оказалось намного больше, чем ожидалось, и цикл занял много времени. Я изменил код на:

@images = @bucket.objects({prefix: 'inspiration')

и ответ был намного быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...