【问题标题】:Error raised uploading image via AvatarUploader通过 AvatarUploader 上传图片时出错
【发布时间】:2015-04-24 06:52:56
【问题描述】:

我在 Nitrous.io 上以开发模式测试我的应用程序,在本地主机上运行它。登录以编辑其帐户并上传图像的用户具有管理员角色。但是,当用户尝试从本地计算机/笔记本电脑上传图像文件时,会出现以下错误:

Excon::Errors::Forbidden in UsersController#update

 Expected(200) <=> Actual(403 Forbidden) excon.error.response :body =>      "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>AllAccessDisabled</Code><Message>All access to this object has been disabled</Message><RequestId>982179552F0C4C29</RequestId><HostId>a5RfS52/0VwdIvro6g7kdaeO4OWm3aUrXVIkcKVY5HVuVM6VnRp0m3ksEflo8jxP88fL8/lBExM=</HostId></Error>" :headers => { "Connection" => "close" "Content-Type" => "application/xml" "Date" => "Fri, 24 Apr 2015 05:07:12 GMT" "Server" => "AmazonS3" "x-amz-id-2" => "a5RfS52/0VwdIvro6g7kdaeO4OWm3aUrXVIkcKVY5HVuVM6VnRp0m3ksEflo8jxP88fL8/lBExM=" "x-amz-request-id" => "982179552F0C4C29" } :local_address => "192.168.239.45" :local_port => 35419 :reason_phrase => "Forbidden" :remote_ip => "54.231.13.136" :status => 403

Extracted source (around line #5):
    4 def update
    5    if current_user.update_attributes(user_params)
    6      flash[:notice] = "User information updated"
    7     redirect_to edit_user_registration_path
    8    else


Request

Parameters:

{"utf8"=>"✓",
 "_method"=>"patch",
 "authenticity_token"=>"9Gzm2XuPF0s1vQhQZFbeX0xwNQ8v4wx+4K79OSomXEN6ITkvh6hu+/8RmhdiSOOpxUOIiu74S3j0AhS3u/mISQ==",
 "user"=>{"name"=>"lacey",
 "avatar"=>#<ActionDispatch::Http::UploadedFile:0x007fd26f0d3218 @tempfile=#<Tempfile:/tmp/RackMultipart20150424-2177-dg55wd.jpg>,
 @original_filename="snailSign.jpg",
 @content_type="image/jpeg",
 @headers="Content-Disposition: form-data; name=\"user[avatar]\"; filename=\"snailSign.jpg\"\r\nContent-Type: image/jpeg\r\n">,
 "avatar_cache"=>""},
 "commit"=>"Update",
 "id"=>"16"}

我想知道我是否没有正确设置开发配置,这就是发生这种情况的原因。但是,我想在开发中解决这个问题,然后再尝试部署——所以我养成了良好的习惯。我目前正在学习使用 Rails 进行 Web 开发的学徒计划。

提前致谢!

【问题讨论】:

  • 您是否使用 gem 进行上传?
  • @crispychicken 我正在使用这些宝石:carrierwave 和 mini_magick。
  • @crispychicken 我应该补充一点,我错误地写了 Heroku。实际上,我正在使用 Nitrous.io 并从那里运行 Rails 服务器。我很抱歉。

标签: ruby-on-rails nitrousio


【解决方案1】:

看起来错误来自 AWS。不是heroku。您是否使用 AWS 存储图像? AWS 配置正确吗? 我不确定,但要配置 AWS,您需要设置 env_vars。 愿这个post 能帮到你

【讨论】:

  • 现在我在开发模式下从 NItrous.io 运行。我没有将 AWS 用于图像。事实上,我正在尝试从我的个人计算机上传图像。这让我相信我需要一个特殊的配置来进行开发。
  • 我犯了一个错误。我不在 heroku 上,而是在使用 Nitrous.io。我的道歉
  • 又一个错误。我正在学习 Web 开发,是的,我确实需要使用 AWS 进行开发。再次抱歉
【解决方案2】:

您是否上传到 Amazon S3?

如果是这样,您必须在 AWS 中设置正确的访问设置。

更多信息在这里Excon::Errors::Forbidden - StackOverflow

【讨论】:

  • Amazon S3 暂时不应该是考虑因素,但我可能错了。现在,我正在开发,我正在使用我想上传为头像的计算机上本地存储的图像。
  • 我误以为我在 Heroku 上。实际上,我使用 Rails 服务器从我的 Nitrous 盒子运行应用程序。
  • 又一个错误。我正在学习 Web 开发,是的,我确实需要使用 AWS 进行开发。再次抱歉
猜你喜欢
  • 2017-03-27
  • 2020-07-31
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-10
相关资源
最近更新 更多