错误号:: EPERM(不允许的操作FILE_PATH)使用Rails上传图像时,Carrierwa

2019-10-18 17:10发布

我正在生产中的错误,导致我使用Rails和Carrierwave上传到亚马逊EC2的图像。

该应用程序完美的作品我的本地开发服务器上,但在生产中我得到这个错误

Completed 500 Internal Server Error in 6319ms

Errno::EPERM (Operation not permitted - /FILE/PATH/TO/IMAGE/DESTINATION):

我检查,以确保该目标文件拥有所有正确的权限。 这是上传目录,这一点我确信,整个目录是可读,可写和可执行的任何人。

 ** [] lrwxrwxrwx.  1 foo rvm   50 Oct  3 10:53 uploads

任何人都知道怎么回事?

Answer 1:

这是由权限问题引起的。 我们的Rails应用程序使用Amazon EC2上,Capistrano的部署和多级扩展生产和分期环境。

之前,我们搬到了多级扩展的贡献者之一所拥有的整个Rails应用程序,让他打电话“富”。 一旦我们实现了多级,我们决定将整个应用程序使用名为“APPUSER”一个全球性的用户。 问题是,许多上传仍由FOO拥有。 这是造成写的问题。

所有上传到正确的用户和组的更改所有权固定的问题。



Answer 2:

你检查carrierwave的cache_path的权限? 默认情况下,它的公共/上传的/ tmp /。

你检查carrierwave的config.permissions和config.directory_permissions? 它们的默认值分别为0666和0777,这可能会或可能不会足以允许上传取决于服务器的设置方式。



文章来源: Errno::EPERM (Operation not permitted FILE_PATH) when uploading image with Rails, Carrierwave, Amazon EC2