我想用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