尝试使用载波和 s3 上传照片时出错
Error trying to upload a photo using carrier wave and 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'
问题出在您的配置端点上,
您不需要主机条目。
我修改了端点以使用标准 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
希望对您有所帮助。
将 CarrierWave 配置选项主机更改为指向 's3.amazonaws.com'
而不是 's3.example.com'
这是我在终端中的错误,
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'
问题出在您的配置端点上,
您不需要主机条目。 我修改了端点以使用标准 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
希望对您有所帮助。
将 CarrierWave 配置选项主机更改为指向 's3.amazonaws.com'
而不是 's3.example.com'