Обслуживание изображений с рельсов amazon s3 - PullRequest
1 голос
/ 17 марта 2011

Я храню все изображения в amazon S3 на стороне клиента. Я не хочу показывать URL-адреса amazon s3, для этого я написал attachments_controller следующим методом

 def show
     send_data(
        open( @attachment.content.url, "rb").read, 
         :type => @attachment.content_content_type,
          :filename => @attachment.content_file_name,
          :disposition => "inline"
       )
 end

в маршрутах, которые я добавилчто каждое вложение должно вызывать вышеуказанное действие, теперь все в порядке, но проблема в том, что каждый раз, когда он рендерит, он не кеширует его.Пожалуйста, дайте мне знать, как его лучше кэшировать, если кеш действий подходит?

Ответы [ 2 ]

3 голосов
/ 17 марта 2011

Почему бы вам не сопоставить пользовательское DNS-имя с корзиной amazon и позволить amazon обслуживать ресурсы для вас?

Ссылки:

2 голосов
/ 17 марта 2011

Это ответ на ваши вопросы, заданные в ответе @ Симоны.

Вы достигаете этого (с некоторыми усилиями), используя Amazon's Cloudfront cdn.

Вы можете связать несколько дистрибутивов с одной корзиной S3, и с каждым дистрибутивом может быть связано до 10 CNAME.

Несколько псевдонимов CNAME

Вы можете использовать более одного псевдонима CNAME. с раздачей. Например, вы может иметь alias1.example.com и alias2.example.com оба связаны с доменным именем вашего дистрибутива. Вы можете иметь до 10 псевдонимов CNAME за раздачу. Вы можете связать конкретный псевдоним CNAME только с одним распределение.

Более подробная информация доступна в руководстве разработчика.

...