gpt4 book ai didi

ruby-on-rails - 载波 Excon::Errors::SocketError

转载 作者:行者123 更新时间:2023-12-04 03:37:16 24 4
gpt4 key购买 nike

看了好几篇相关的帖子和​​解决方案,还是想不通,还是返回“Excon::Errors::SocketError 在/postsgetaddrinfo: nodename 或 servname 提供,或未知 (SocketError)”

这是config/carrierwave.rb

CarrierWave.configure do |config|
config.fog_credentials = {
:provider => 'AWS', # required
:aws_access_key_id => '----', # required
:aws_secret_access_key => '----', # required
:region => 'eu-west-1', # optional, defaults to 'us-east-1'
:host => 's3.example.com', # optional, defaults to nil
:endpoint => 'https://s3.example.com:8080' # optional, defaults to nil
}
config.fog_directory = 'name_of_directory' # required
config.fog_public = false # optional, defaults to true
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {}
config.asset_host = 'https://assets.example.com'
end

avatar_upload.rb

 # encoding: utf-8

class AvatarUploader < CarrierWave::Uploader::Base

include CarrierWave::MiniMagick

storage :fog
process :resize_to_fit => [900,500]

version :thumb do
process :resize_to_fill => [200,200]
end

def cache_dir
"#{Rails.root}/tmp/uploads"
end

def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def default_url
# # For Rails 3.1+ asset pipeline compatibility:
# # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
#
"/images/fallback/" + [version_name, "default.png"].compact.join('_')
end

def extension_white_list
%w(jpg jpeg gif png)
end
end

来自后 Controller

 def create
@post = Post.new(post_params)
@post.user = current_user

unless current_user.admin?
unless current_user.manager?
redirect_to :back, :alert => "acces denied"
end
end

respond_to do |format|
if @post.save
params[:photo_attachments]['avatar'].each do |a|
@photo_attachment = @post.photo_attachments.create!(:avatar => a, :post_id =>@post.id)
end
format.html { redirect_to @post, notice: 'Post was successfully created.' }
format.json { render :show, status: :created, location: @post }
else
format.html { render :new }
format.json { render json: @post.errors, status: :unprocessable_entity }
end
end
end

安装 carrierwave-aws 后更新了 config/carrierwave.rb

CarrierWave.configure do |config|
config.storage = :aws
config.aws_bucket = ENV['S3_BUCKET_NAME']
config.aws_acl = :public_read
config.asset_host = 'http://example.com'
config.aws_authenticated_url_expiration = 60 * 60 * 24 * 365

config.aws_credentials = {
access_key_id: ENV['---'],
secret_access_key: ENV['---']
}
end

更改为存储后:aws

AWS::Errors::MissingCredentialsError

Missing Credentials.

Unable to find AWS credentials. You can configure your AWS credentials
a few different ways:

* Call AWS.config with :access_key_id and :secret_access_key

* Export AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY to ENV

* On EC2 you can run instances with an IAM instance profile and credentials
will be auto loaded from the instance metadata service on those
instances.

* Call AWS.config with :credential_provider. A credential provider should
either include AWS::Core::CredentialProviders::Provider or respond to
the same public methods.

= Ruby on Rails

In a Ruby on Rails application you may also specify your credentials in
the following ways:

* Via a config initializer script using any of the methods mentioned above
(e.g. RAILS_ROOT/config/initializers/aws-sdk.rb).

* Via a yaml configuration file located at RAILS_ROOT/config/aws.yml.
This file should be formated like the default RAILS_ROOT/config/database.yml
file.

最佳答案

这可能是因为使用了 fog 的实现,也许尝试将您的 gem 切换到 carrierwave-aws 并查看它是否解决了您的问题:)

https://github.com/sorentwo/carrierwave-aws

我记得有过类似的错误,更改后,工作正常!

关于ruby-on-rails - 载波 Excon::Errors::SocketError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25029663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com