Я начал интегрировать CloudFront в мое захватывающее приложение Rails, все с CloudFront работает отлично, за исключением того, что старые загруженные изображения не могут быть доступны.Объединить загруженные изображения Amazon S3 в CloudFront
CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS',
:aws_access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'],
}
config.asset_host = ENV['CLOUDFRONT_ENDPOINT']
config.fog_directory = 'oktob-editor'
config.fog_public = true
config.fog_attributes = {'Cache-Control'=>"max-age=#{365.day.to_i}"}
end
Пример старого загруженного изображения
https://oktob-editor.s3.amazonaws.com/uploads/post/image/127/thumb_Ruby_on_Rails.svg.png
После того как я интегрирована CloudFront и установить asset_host
становится
http://ID.cloudfront.net/uploads/post/image/127/thumb_Ruby_on_Rails.svg.png
с
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>D368D2E641BBBB64</RequestId><HostId></HostId></Error>
Так есть ли способ, что Enabl е старые изображения для правильной работы с CloudFront
Предположительно вы позволили CloudFront обновить политику ведра? Это прекрасно, если вы понимаете, что * все * в ведре теперь открыто. –
Спасибо @ Michael-sqlbot, но как это повлияет на безопасность ведра, как это предотвратить, я должен ограничить это одним IP-адресом, например, что это лучший способ сделать это. –
Я должен был быть более явным, когда Я сказал публично: общедоступно. Если у вас есть собственный контент в ведре, то вам может понадобиться политика, позволяющая использовать определенные префиксы пути для общедоступного чтения или изменять атрибуты отдельных объектов, чтобы сделать их общедоступными. Вы не можете ограничивать/разрешать IP, так как CloudFront имеет тысячи из них ... Но вы можете поочередно изменять конфигурацию облачного режима, поэтому только определенные шаблоны путей будут прокси-сервером. –