将上传的 Amazon S3 图像合并到 CloudFront

Merge uploaded Amazon S3 images into CloudFront

我开始将 CloudFront 集成到我激动人心的 Rails 应用程序中,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>

那么有没有一种方法可以让旧图像与 CloudFront 一起正常工作

似乎将“限制存储桶访问”更改为“是”使其起作用