简体   繁体   English

权限被拒绝@ dir_s_mkdir-/ listings

[英]Permission denied @ dir_s_mkdir - /listings

I am not exactly sure what I am doing wrong. 我不确定自己在做什么错。 Paperclip with S3. 带S3的回形针。

Errno::EACCES in ListingsController#update Permission denied @ dir_s_mkdir - /listings Extracted source (around line #44): ListingsController#update中的Errno :: EACCES权限被拒绝@ dir_s_mkdir-/ listings提取的源(在第44行附近):

  1. def update def更新
  2. respond_to do |format| response_do |格式|
  3. if @listing.update(listing_params) 如果@ listing.update(listing_params)
  4. format.html { redirect_to @listing, notice: 'Listing was 46.successfully updated.' format.html {redirect_to @listing,注意:“列表已成功更新46次。” } }
  5. format.json { render :show, status: :ok, location: @listing } 48 else format.json {render:show,status::ok,location:@listing} 48其他

Listing_controller.rb Listing_controller.rb

<p id="notice"><%= notice %></p>

<div class="row">
  <div class="col-md-6">
    <div class="thumbnail">
      <%= image_tag @listing.image.url %>
    </div>
  </div>
  <div class="col-md-6">
    <h3><%= @listing.name %></h3>
    <p><%= number_to_currency (@listing.price) %></p>
    <p><%= @listing.description %></p>
  </div>
</div>

<%= link_to 'Edit', edit_listing_path(@listing), class: "btn btn-link" %>
<%= link_to 'Back', listings_path, class: "btn btn-link" %>

In model, 在模型中

class Listing < ActiveRecord::Base
  has_attached_file :image, :styles => { :medium => "200x", :thumb =>        "100x100>" }, :default_url => "default.jpg"
  validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
end

In views, show.html.erb 在视图中,show.html.erb

<p id="notice"><%= notice %></p>

<div class="row">
   <div class="col-md-6">
     <div class="thumbnail">
      <%= image_tag @listing.image.url %>
    </div>
  </div>
  <div class="col-md-6">
    <h3><%= @listing.name %></h3>
    <p><%= number_to_currency (@listing.price) %></p>
    <p><%= @listing.description %></p>
  </div>
</div>

<%= link_to 'Edit', edit_listing_path(@listing), class: "btn btn-link" %>
<%= link_to 'Back', listings_path, class: "btn btn-link" %>

Gems installed, 宝石已安装,

source 'https://rubygems.org'
ruby "2.3.3"

git_source(:github) do |repo_name|
  repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
  "https://github.com/#{repo_name}.git"
end
gem 'rails', '~> 5.0.1'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'jquery-rails'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'bootstrap-sass', '~> 3.3.6'
gem "paperclip", git: "git://github.com/thoughtbot/paperclip.git"
gem 'listen', '~> 3.1.5'
gem 'aws-sdk'

group :production do
  gem 'pg'
  gem 'rails_12factor'
end

group :development, :test do
  gem 'sqlite3'
end

group :doc do
  gem 'sdoc', require: false
end

Error within Terminal, 终端机内的错误,

Listing Load (5.7ms)  SELECT  "listings".* FROM "listings" WHERE      "listings"."id" = ? LIMIT ?  [["id", 1], ["LIMIT", 1]]
   (0.1ms)  begin transaction
[paperclip] Trying to link   /var/folders/__/2162ls5577704gd514y0859w0000gp/T/RackMultipart20170210-    36927-1iuewku.jpg to  /var/folders/__/2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg

[paperclip] Trying to link /var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg to /var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1t9j57i.jpg Command :: file -b --mime '/var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1t9j57i.jpg' Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' 2>/dev/null Command :: identify -format %m '/var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' Command :: convert '/var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' -auto-orient -resize "200" '/var/folders/ /2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124c5763420170210-36927-j452kb' [paperclip] Trying to link /var/fold [回形针]尝试将/ var / folders / /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg链接到/ var / folders / / 2162ls5577704gd514y0859w0000gb8b7b7bff7b7bff7b00b7fff7b7e7b7b0b7e7b7b0b0e8b8b7e7b0b0e8b8e7b0b7e7b0bb0b9b0b0b0e8b8b9bbfb1bb0b0bb0b0b0b0b0b0bb0b0b0bb0b0bb0fbbb0fbbb0fbbb0fbbbfbfbfbfbfbfbfbfbffbffbfbf '/ var / folders / /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1t9j57i.jpg'Command :: -36927-1ywsn2q.jpg [0]'2> / dev / null命令::标识-format%m'/ var / folders / /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]'命令:: convert '/ var / folders / /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]'-auto-orient -resize“ 200”'/ var / folders / / 2162ls5577704gd514y0859b9c9f7b90c9c9f7b3e0b9e9e0b0e9e0e0e0b0e0b0e0e0e0e0b0e0e0e0e0b0e0e0b0e人]尝试链接/ var / fold ers/ /2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124 c5763420170210-36927-j452kb to /var/folders/ /2162ls5577704gd514y0859w0000gp/T/9918700e8a5840d631b32dff0efdc32820170210-36927-1j9zu6h Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' 2>/dev/null Command :: identify -format %m '/var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' Command :: convert '/var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' -auto-orient -resize "100x100>" '/var/folders/ /2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124c5763420170210-36927-1t64b8q' [paperclip] Trying to link /var/folders/ /2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124c5763420170210-36927-1t64b8q to /var/folders/ /2162ls5577704gd514y0859w0000gp/T/5a42e5f066b94471d8d7dd70241f ers / / 2162ls5577704gd514y0859w0000gp / T / 73570fb1d3ecfa0dc9a9d5e124 c5763420170210-36927-j452kb至/ var / folders / / 2162ls5577704gd514y0859w0000gp / T / 9918700e8a5840d631b32dff6ef: var / folders / /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]'2> / dev / null命令:: identify -format%m'/ var / folders / / 2162ls5577704gdyyb2107b7768b2107b7768a7768b2e7b2e7b7e7b0e7b7e7b7e7b0e7b0e7b0e7b0e7b0e7c7b0e7b0e7b0e7b0e7b0b0c .jpg [0]'命令:: :: convert'/ var / folders / /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]'-auto-orient -resize“ 100x100>”'/ var / folders // 4d514ls / T / 73570fb1d3ecfa0dc9a9d5e124c5763420170210-36927-1t64b8q'[回形针]试图链接 / var / folders / / 2162ls5577704gd514y0859w0000gp / T / 73570fb1d3ecfa0dc9a9d5e124c57634b42t7f7t7f7e4b4e7b4e7e4e4e7e4e7e4e7e7e7e5e7e5e4c3e7e7e5e7e0e0e0b0e0b0e0e0b0e0b0e0e0e0e0b0e 775820170210-36927-1l2vm2j [paperclip] Trying to link /var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg to /var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-h40oj7.jpg Command :: file -b --mime '/var/folders/ /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-h40oj7.jpg' SQL (0.9ms) UPDATE "listings" SET "image_file_name" = ?, "image_file_size" = ?, "image_updated_at" = ?, "updated_at" = ? 775820170210-36927-1l2vm2j [paperclip]尝试将/ var / folders / /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg链接到/ var / folders / / 2162ls5577704bc7a7107b7a7e7c7a7e7b7e7e7b7e7b7e7e7b7e7e7b7e7e7b0e7c7e7e7b7e7b7e7b7e7e7b0e7c0c -b --mime'/ var / folders / /2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-h40oj7.jpg'SQL(0.9ms)UPDATE“清单” SET“ image_file_name” =?,“ image_file_size” = ?,“ updated_at” =? WHERE "listings"."id" = ? 在“列表”。“ id” =吗? [["image_file_name", "022916_flyMG2.jpg"], ["image_file_size", 12403], ["image_updated_at", 2017-02-10 01:24:57 UTC], ["updated_at", 2017-02-10 01:24:58 UTC], ["id", 1]] (1.0ms) rollback transaction Completed 500 Internal Server Error in 457ms (ActiveRecord: 8.6ms) [[“ image_file_name”,“ 022916_flyMG2.jpg”],[“ image_file_size”,12403],[“ image_updated_at”,2017-02-10 01:24:57 UTC],[“ updated_at”,2017-02-10 01 :24:58 UTC],[“ id”,1]](1.0毫秒)回滚事务在457毫秒内完成了500个内部服务器错误(ActiveRecord:8.6毫秒)

Errno::EACCES (Permission denied @ dir_s_mkdir - /listings):

app/controllers/listings_controller.rb:44:in `block in update'
app/controllers/listings_controller.rb:43:in `update'
  Rendering /Users/chrisdionne/.rvm/gems/ruby-2.3.3/gems/actionpack-  5.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erbwithin rescues/layout
  Rendering /Users/chrisdionne/.rvm/gems/ruby-2.3.3/gems/actionpack- 5.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
  Rendered /Users/chrisdionne/.rvm/gems/ruby-2.3.3/gems/actionpack-5.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (7.4ms)
  Rendering /Users/chrisdionne/.rvm/gems/ruby-2.3.3/gems/actionpack-5.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
  Rendered /Users/chrisdionne/.rvm/gems/ruby-2.3.3/gems/actionpack-5.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (3.6ms)
  Rendering /Users/chrisdionne/.rvm/gems/ruby-2.3.3/gems/actionpack-5.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
  Rendered /Users/chrisdionne/.rvm/gems/ruby-2.3.3/gems/actionpack-5.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (3.5ms)
  Rendered /Users/chrisdionne/.rvm/gems/ruby-2.3.3/gems/actionpack-5.0.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (152.5ms)

As @tadman said, you are trying to create your attachments outside your application path. 正如@tadman所说,您正在尝试在应用程序路径之外创建附件。

Try changing 尝试改变

Paperclip::Attachment.default_options[:path] = '/:class/:attachment/:id_partition/:style/:filename'

with something like 用类似的东西

Paperclip::Attachment.default_options[:path] = ':rails_root/public/system/:class/:attachment/:id_partition/:style/:filename'

or 要么

Paperclip::Attachment.default_options[:path] = "#{Rails.root}/public/system/:class/:attachment/:id_partition/:style/:filename"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM