Rails 4.2.0 - Errno::EACCES(权限被拒绝@dir_s_mkdir - /files)

Posted

技术标签:

【中文标题】Rails 4.2.0 - Errno::EACCES(权限被拒绝@dir_s_mkdir - /files)【英文标题】:Rails 4.2.0 - Errno::EACCES (Permission denied @ dir_s_mkdir - /files) 【发布时间】:2015-12-06 15:36:58 【问题描述】:

在 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)

在控制器中,我尝试了两种方式,一种是@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

我该如何解决这个权限被拒绝的问题?

【问题讨论】:

我认为您正在使用 aws-s3 作为存储。如果是这样,请在 s3 上检查您的存储桶可访问性。 没有。我没有使用 s3,我正在尝试将其保存在 localhost 本身中。 您尝试保存文件的文件夹的完整路径是什么? 【参考方案1】:

将您的路径更改为以下内容(使用:rails_root):

:path => ":rails_root/files/:assetable_id/:basename.:extension"

rails_root 将为您提供应用程序的路径。

【讨论】:

您是否尝试像这样使用:rails_root 设置路径::path => ":rails_root/files/:assetable_id/:basename.:extension"【参考方案2】:

在本地驱动器上创建目录是运行代码- 为此,我正在执行-

Dir.mkdir(Rails.root+ '/' + 'export')

但是得到错误 - Errno::EACCES: Permission denied @ dir_s_mkdir - /Main_File我知道是什么原因,它正在寻找超级用户 ($ sudo) 权限,但我们无法提供每次的机器密码。

以下内容根据需要为我工作-

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 - Errno::EACCES(权限被拒绝@dir_s_mkdir - /files)的主要内容,如果未能解决你的问题,请参考以下文章

Sidekiq 3.4.2 和 Rails 4.2.0 出现“未定义方法 perform_at”错误

rails 4.2.0:无法在 ubuntu 14.04 上安装 pg gem

带有 Rails 4.2.0 的 Fotorama jQuery Gallery(Turbolinks 问题)

Rails 4.2.0 - Errno::EACCES(权限被拒绝@dir_s_mkdir - /files)

Rails rdoc Gem 错误/损坏问题

Rails 和 jsonb 类型“jsonb”不存在