簡體   English   中英

errno::eacces: 上傳 jpg 時權限被拒絕@rb_sysopen

[英]errno::eacces: permission denied @ rb_sysopen when uploading jpg

我正在開發 rails 應用程序,當我嘗試將照片上傳到服務器時遇到問題,顯示錯誤消息。 在日志文件中,我有錯誤:“Errno::EACCES(權限被拒絕@rb_sysopen - /photo.jpg”。問題發生在“File.open(...)”行

我的上傳方法:

def upload_photo
    logger.info(params.to_s)
    logger.info(params[:file].to_s)
    photo = params[:file]
    filename = photo.instance_variable_get(:@headers).to_s.match(/filename="(.*)"/).captures[0]
        
    File.open("#{PHOTO_DIR}/#{photo.original_filename}",'wb') do |file|
        file.write(photo.read)
    end
            
    respond_to do |format|
        format.html {
            render :text => 'File uploaded.'
        }
    end
end

存儲照片的文件夾的權限是“drw-rw-rw-”,所有者是我的用戶,組也是我的用戶。

我試圖通過使用chown -R user:user /path/to/photos收回所有權來解決這個問題,但它沒有用。

我該如何解決這個問題?

問題在於 PHOTO_DIR 常量,因為它在 constants.rb 文件中被設置為 env 變量。

PHOTO_DIR = ENV['PHOTO']

當我使用目錄的完整路徑更改 env 變量時,一切都按預期工作。

PHOTO_DIR = '/path/to/jpg_files/'

看起來 env 變量沒有加載到 ~/.bashrc 文件中,但我嘗試了echo $PHOTO並打印了照片的路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM