权限被拒绝@ dir_s_mkdir - /listings
Permission denied @ dir_s_mkdir - /listings
我不确定我做错了什么。带 S3 的回形针。
ListingsController 中的 Errno::EACCES#update
权限被拒绝@ dir_s_mkdir - /listings
提取的源代码(大约第 44 行):
- 默认更新
- respond_to 做|格式化|
- 如果@listing.update(listing_params)
- format.html { redirect_to @listing, 注意: 'Listing was 46.successfully updated.' }
- format.json { 渲染:显示,状态::确定,位置:@listing }
48 其他
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" %>
模型中,
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
在浏览量中,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" %>
已安装宝石,
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
终端内出错,
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
[回形针] 尝试 link /var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg 到 /var/folders//2162ls5577704gd514y0859w0000gp /T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1t9j57i.jpg
命令 :: file -b --mime '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1t9j57i.jpg'
命令 :: identify -format '%wx%h,%[exif:orientation]' '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' 2>/dev/null
命令 :: identify -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//2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124c5763420170210-36927-j452kb'
[回形针] 尝试 link /var/folders//2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124 c5763420170210-36927-j452kb 到 /var/folders//2162ls5577704gd5p/0 =94=]
命令 :: identify -format '%wx%h,%[exif:orientation]' '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' 2>/dev/null
命令 :: identify -format %m '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]'
命令 :: convert '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' -auto-orient -resize "100x100>" '/var/folders//2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124c5763420170210-36927-1t64b8q'
[回形针] 尝试 link /var/folders//2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124c5763420170210-36927-1t64b8q 到 /var/folders//2162ls557770400gd514 =107=]
[回形针] 尝试 link /var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg 到 /var/folders//2162ls5577704gd514y0859w0000gp/[=111= .jpg
命令 :: file -b --mime '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-h40oj7.jpg'
SQL (0.9ms) 更新 "listings" 设置 "image_file_name" = ?, "image_file_size" = ?, "image_updated_at" = ?, "updated_at" = ?哪里 "listings"."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) 回滚事务
在 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)
正如@tadman 所说,您正在尝试在应用程序路径之外创建附件。
尝试改变
Paperclip::Attachment.default_options[:path] = '/:class/:attachment/:id_partition/:style/:filename'
类似
Paperclip::Attachment.default_options[:path] = ':rails_root/public/system/:class/:attachment/:id_partition/:style/:filename'
或
Paperclip::Attachment.default_options[:path] = "#{Rails.root}/public/system/:class/:attachment/:id_partition/:style/:filename"
我不确定我做错了什么。带 S3 的回形针。
ListingsController 中的 Errno::EACCES#update 权限被拒绝@ dir_s_mkdir - /listings 提取的源代码(大约第 44 行):
- 默认更新
- respond_to 做|格式化|
- 如果@listing.update(listing_params)
- format.html { redirect_to @listing, 注意: 'Listing was 46.successfully updated.' }
- format.json { 渲染:显示,状态::确定,位置:@listing } 48 其他
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" %>
模型中,
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
在浏览量中,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" %>
已安装宝石,
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
终端内出错,
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
[回形针] 尝试 link /var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg 到 /var/folders//2162ls5577704gd514y0859w0000gp /T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1t9j57i.jpg 命令 :: file -b --mime '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1t9j57i.jpg' 命令 :: identify -format '%wx%h,%[exif:orientation]' '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' 2>/dev/null 命令 :: identify -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//2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124c5763420170210-36927-j452kb' [回形针] 尝试 link /var/folders//2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124 c5763420170210-36927-j452kb 到 /var/folders//2162ls5577704gd5p/0 =94=] 命令 :: identify -format '%wx%h,%[exif:orientation]' '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' 2>/dev/null 命令 :: identify -format %m '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' 命令 :: convert '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg[0]' -auto-orient -resize "100x100>" '/var/folders//2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124c5763420170210-36927-1t64b8q' [回形针] 尝试 link /var/folders//2162ls5577704gd514y0859w0000gp/T/73570fb1d3ecfa0dc9a9d5e124c5763420170210-36927-1t64b8q 到 /var/folders//2162ls557770400gd514 =107=] [回形针] 尝试 link /var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-1ywsn2q.jpg 到 /var/folders//2162ls5577704gd514y0859w0000gp/[=111= .jpg 命令 :: file -b --mime '/var/folders//2162ls5577704gd514y0859w0000gp/T/c3e768b17c5aa48db8ffbc959904bbaa20170210-36927-h40oj7.jpg' SQL (0.9ms) 更新 "listings" 设置 "image_file_name" = ?, "image_file_size" = ?, "image_updated_at" = ?, "updated_at" = ?哪里 "listings"."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) 回滚事务 在 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)
正如@tadman 所说,您正在尝试在应用程序路径之外创建附件。
尝试改变
Paperclip::Attachment.default_options[:path] = '/:class/:attachment/:id_partition/:style/:filename'
类似
Paperclip::Attachment.default_options[:path] = ':rails_root/public/system/:class/:attachment/:id_partition/:style/:filename'
或
Paperclip::Attachment.default_options[:path] = "#{Rails.root}/public/system/:class/:attachment/:id_partition/:style/:filename"