2016-10-11 130 views
0

我想用Carrierwave和Fog-Aws上传到S3,并且遇到问题。出于某种原因,大雾正试图在使用Carrierwave上载到S3的默认上传路径无效

https://{bucket-name}.s3.amazonaws.com

但上传到我的水桶,当我直接从AWS访问一个文件,URL格式是这样的:

https://s3-{region}.amazonaws.com/{bucket-name

每当我尝试使用雾是使用路径,它给了我下面的错误:

The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

所以我的问题是,是否有办法

A)更改S3的终点格式以匹配雾是希望它是,或

B)更改设置为雾使用此不同格式呢?

参考:

我使用Carrierwave版本1.0,雾AWS版本0.11.0

这里是我的carrierwave.rb文件:

if Rails.env.test? or Rails.env.development? 
    CarrierWave.configure do |config| 
    config.storage = :file 
    config.root = "#{Rails.root}/tmp" 
    config.cache_dir = "#{Rails.root}/tmp/images" 
    end 
else 
    CarrierWave.configure do |config| 
    config.fog_provider = 'fog/aws' 
    config.fog_credentials = { 
     :provider => 'AWS', 
     :aws_access_key_id => ENV['AWS_ACCESS_KEY_ID'], 
     :aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], 
     :region => ENV['AWS_S3_REGION'], 
     :endpoint => "https://s3-#{ENV['AWS_S3_REGION']}.amazonaws.com/#{ENV['AWS_S3_BUCKET_NAME']}" 
    } 
    config.storage = :fog 
    config.fog_directory = ENV['AWS_S3_BUCKET_NAME'] 
    config.fog_public = false 
    end 
end 

回答

0

我相信:区域是只有在这种情况下设置你应该需要改变。只要它被准确设置(并且不是默认的us-east-1区域),它应该根据需要更改主机。

这就是说,我不希望也需要像这样改变端点。如果你需要使用CNAME的东西,它会被设置,这听起来不像你需要的。在设置区域时省略此操作,应该很有希望得到你以后的内容。

相关问题