Я использую Rails + Paperclip + S3. Я хочу разместить свои ресурсы в Cloudfront, используя один из моих кодов S3.
Я знаю, что Cloudfront кэширует активы, но вы можете разбить этот кеш, настроив его на пересылку строк запроса из источника.
Когда я изменяю актив, я ожидаю, что это произойдет
- Временная метка
updated_at
объекта ActiveRecord обновлена. - Паперклип обновляет строку запроса изображения на S3, чтобы отобразить новое время
updated_at
. - Cloudfront обслуживает новое изображение из-за новой строки запроса timestamp.
Однако, похоже, что Paperclip неправильно обновляет метку времени updated_at
. Может быть, он как-то кешировал. Поэтому строка запроса не обновляется, и Cloudfront никогда не разбивает кеш.
Моя модель:
class UserImage < ActiveRecord::Base
has_attached_file :image
end
>> ui = UserImage.find(576925)
>> ui.image.class
=> Paperclip::Attachment
>> ui.touch
>> ui.updated_at.to_i
=> 1386241041
>> ui.image.updated_at
=> 1386240937
Эти две метки update_at должны быть одинаковыми.