繁体   English   中英

Heroku删除我上传的文件,为什么?

[英]Heroku delete my uploaded files, why?

如果我在Heroku上的应用程序中加载文件,则一切正常,但是当我再次尝试重新加载应用程序时,出现以下错误:

2013-01-25T08:48:31+00:00 app[web.1]:   app/controllers/main_controller.rb:20:in `index'
2013-01-25T08:48:31+00:00 app[web.1]: 
2013-01-25T08:48:31+00:00 app[web.1]: 
2013-01-25T08:48:31+00:00 app[web.1]: Errno::ENOENT (No such file or directory - /app/config/cases/casesID6.yml):
2013-01-25T08:48:31+00:00 app[web.1]:   app/controllers/main_controller.rb:20:in `read'

完全可以!

主控制器:

# importo yaml di configurazione
require 'yaml'
if Survey.exists?(1)
    @idOfSurvey = Survey.find {|s| s['active_state'] == true}['id']
    nameOfSurvey = "casesID"+String(@idOfSurvey)+".yml"
    @survey = YAML::load(ERB.new(IO.read(File.join(Rails.root, 'config/cases', nameOfSurvey))).result)
else
    render :action => 'noYaml' and return
end

上传控制器:

#inserisco il nuovo questionario
            survey = Survey.new
            if Survey.exists?(1)
                n = String(Integer(Survey.maximum("Id"))+1)
                survey.name = "casesID#{n}"
            else
                survey.name = "casesID1"
            end
            File.open(Rails.root.join('config/cases', survey.name+".yml"), 'wb+') do |file|
                file.write(uploaded_io.read)
            end
            survey.save()

我相信我上传到Heroku的文件可能会被平台清除,例如由于内存问题,或者因为它会将文件保存为临时文件,这可能吗? 解决方案!

我再说一遍,在本地一切都很好:(

缩放,重新启动或推送新版本的代码后,您可以写入Heroku文件系统,而该文件将消失。

您需要使用持久性文件存储,例如Amazon S3,Rackspace等-在https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem中了解更多信息,并使用CarrierWave或Paperclip这样的gem来建立连接S3超级简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM