2017-09-23 89 views
0

这是我在终端错误上传照片,错误尝试使用载波和S3

Excon::Error::Socket (getaddrinfo: nodename nor servname provided, or not known (SocketError)): 

app/controllers/properties_controller.rb:15:in `create' 

这是视图页面

getaddrinfo: nodename nor servname provided, or not known (SocketError) 

这是我的大雾文件,

CarrierWave.configure do |config| 
    config.fog_provider = 'fog/aws'      # required 
    config.fog_credentials = { 
provider:    'AWS',      # required 
aws_access_key_id:  ENV['AWS_APP_KEY'],      # required 
aws_secret_access_key: ENV['AWS_APP_SECRET'],      # required 
region:    'us-east-1',     # optional, defaults to 'us-east-1' 
host:     's3.example.com',    # optional, defaults to nil 
endpoint:    's3-external-1.amazonaws.com' # optional, defaults to nil 
} 
config.fog_directory = ENV['AWS_BUCKET_NAME']       # required 
config.fog_public  = false          # optional, defaults to true 
config.fog_attributes = { cache_control: "public, max-age=#{365.day.to_i}" } # optional, defaults to {} 
end 

任何帮助将不胜感激

def create 
@property = Property.new(property_params) 

    if @property.save 
    redirect_to root_path 
    else 
    render 'new' 
    end 
end 


    private 
    def property_params 
if params[:property][:amenities].class == Array 
    params[:property][:amenities] = params[:property][:amenities].join(",") 
end 
params.require(:property).permit(:property_name, :city, :ppm, :images, :user_id, :amenities, {property_images: []}) 

end 

它要我增加更多的细节,所以我试图改变区域等等

还做我需要“EXCON”

+0

喜戴夫,你能提供从性能控制器'create'方法? – garythegoat

+0

刚刚添加。谢谢 – Dave

+0

我认为你需要改变CarrierWave配置选项'主机'指向''s3.amazonaws.com''而不是''s3.example.com'' – garythegoat

回答

1

更改CarrierWave配置选项主机指向的's3.amazonaws.com'代替's3.example.com'

+0

伟大的,似乎已经排序该错误,我'现在离开这个:坏的URI(不是URI?):: /(我的桶名称).s3.amazonaws.com: – Dave

+0

好吧,我已经排序谢谢 – Dave

1

问题与您的配置端点,

你不需要主机输入。 我修改了端点以使用标准的s3 url。

CarrierWave.configure do |config| 
    config.fog_provider = 'fog/aws'      # required 
    config.fog_credentials = { 
provider:    'AWS',      # required 
aws_access_key_id:  ENV['AWS_APP_KEY'],      # required 
aws_secret_access_key: ENV['AWS_APP_SECRET'],      # required 
region:    'us-east-1',     # optional, defaults to 'us-east-1' 
endpoint:    's3.amazonaws.com' # optional, defaults to nil 
} 
config.fog_directory = ENV['AWS_BUCKET_NAME']       # required 
config.fog_public  = false          # optional, defaults to true 
config.fog_attributes = { cache_control: "public, max-age=#{365.day.to_i}" } # optional, defaults to {} 
end 

参考文档:

https://github.com/carrierwaveuploader/carrierwave/wiki/How-to:-Use-minio-with-Carrierwave

https://github.com/carrierwaveuploader/carrierwave/issues/1802

希望它能帮助。