Rails 4.2.0 - Errno::EACCES(权限被拒绝@ dir_s_mkdir - /files)
Rails 4.2.0 - Errno::EACCES (Permission denied @ dir_s_mkdir - /files)
在 rails 4.2.0 中,我使用 paperclip
进行文件上传。但是它会抛出类似 Errno::EACCES (Permission denied @ dir_s_mkdir - /files)
的错误,我该如何解决这个问题?
当我运行gem list paperclip
时,我得到了如下列表
paperclip (4.3.0, 4.2.2, 4.2.0, 2.4.5)
在controller里,我试过两种方式,一种是@file = Asset.new(:document=>params[:asset][:document])
,另一种是
@file = Asset.new(user_params)
def user_params
params.require(:asset).permit(:document)
end
模型中,
attr_accessible :status, :document_file_name, :document_content_type, :document_file_size
attr_accessible :document
has_attached_file :document,
:url => '/files/:assetable_id/:basename.:extension',
:path => "/files/:assetable_id/:basename.:extension",
:storage => :filesystem
如何解决这个权限被拒绝的问题?
将您的路径更改为以下内容(使用 :rails_root
):
:path => ":rails_root/files/:assetable_id/:basename.:extension"
rails_root
将为您提供应用的路径。
To create Directory on local drive here is the running code-
To do so I was executing-
Dir.mkdir(Rails.root+ '/' + 'export')
但是出现错误-
Errno::EACCES:权限被拒绝@dir_s_mkdir - /Main_File
我知道是什么原因,它正在寻找超级用户($ sudo
)权限,但我们不能每次都提供机器密码。
Following worked for me as required-
Dir.mkdir(File.join(Dir.home, ".foo"), 0700) #=> 0
创建路径并将其存储在变量中-
main_file = File.exist?( File.join(Dir.home, "Main_File") ) ? File.join(Dir.home, "/Main_File") : Dir.mkdir( File.join(Dir.home, "Main_File") )
如果文件不存在,以上将创建文件
如果它存在,将访问它并存储在变量 main_file
中。
感谢this link!
希望对你有用!
在 rails 4.2.0 中,我使用 paperclip
进行文件上传。但是它会抛出类似 Errno::EACCES (Permission denied @ dir_s_mkdir - /files)
的错误,我该如何解决这个问题?
当我运行gem list paperclip
时,我得到了如下列表
paperclip (4.3.0, 4.2.2, 4.2.0, 2.4.5)
在controller里,我试过两种方式,一种是@file = Asset.new(:document=>params[:asset][:document])
,另一种是
@file = Asset.new(user_params)
def user_params
params.require(:asset).permit(:document)
end
模型中,
attr_accessible :status, :document_file_name, :document_content_type, :document_file_size
attr_accessible :document
has_attached_file :document,
:url => '/files/:assetable_id/:basename.:extension',
:path => "/files/:assetable_id/:basename.:extension",
:storage => :filesystem
如何解决这个权限被拒绝的问题?
将您的路径更改为以下内容(使用 :rails_root
):
:path => ":rails_root/files/:assetable_id/:basename.:extension"
rails_root
将为您提供应用的路径。
To create Directory on local drive here is the running code- To do so I was executing-
Dir.mkdir(Rails.root+ '/' + 'export')
但是出现错误-
Errno::EACCES:权限被拒绝@dir_s_mkdir - /Main_File
我知道是什么原因,它正在寻找超级用户($ sudo
)权限,但我们不能每次都提供机器密码。
Following worked for me as required-
Dir.mkdir(File.join(Dir.home, ".foo"), 0700) #=> 0
创建路径并将其存储在变量中-
main_file = File.exist?( File.join(Dir.home, "Main_File") ) ? File.join(Dir.home, "/Main_File") : Dir.mkdir( File.join(Dir.home, "Main_File") )
如果文件不存在,以上将创建文件
如果它存在,将访问它并存储在变量 main_file
中。
感谢this link!
希望对你有用!