Heroku帮助权限被拒绝如何打开文件?

时间:2011-09-25 00:29:35

标签: ruby-on-rails ruby ruby-on-rails-3 heroku

我在Heroku上收到此错误:

 ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m Rendered admin/xml/index.rhtml wi
    thin layouts/admin (87.7ms)
    ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m Completed   in 89ms
    ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m
    ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m ActionView::Template::Error (Perm
    ission denied - /app/public/xml/preview.xml):
    ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m     1: <% update_xml("preview") %
    >
    ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m     2:
    ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m     3:
    ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m     4: <h2>Preview/publish</h2>
    ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m   app/helpers/admin/xml_helper.rb
    :88:in `initialize'
    ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m   app/helpers/admin/xml_helper.rb
    :88:in `open'
    ←[36m2011-09-25T00:24:51+00:00 app[web.1]:←[0m   app/helpers/admin/xml_helper.rb

我的帮手:

    File.open("#{RAILS_ROOT}/public/xml/#{output}.xml", "w") do |f|

           f.puts("<?xml version='1.0' encoding='UTF-8'?>")            
           f.puts("<site>")     

           f.puts("<general name='general' type='general'><imagePath>photographer/image/</imagePath><moviePath>../photographer/flv/</moviePath></general>")             
           f.puts("#{xmlmenu.to_xml}")
           f.puts("#{xmlmovies.to_xml}")                           
           f.puts("#{xmltextpages.to_xml}")

           f.puts("</site>")
        end 
end     

如何解决这个问题? 或者如何使用amazon S3创建这个打开的文件并进行身份验证。

2 个答案:

答案 0 :(得分:2)

你可以在Heroku上写的唯一目录是tmp。

答案 1 :(得分:1)

Cedar堆栈有一个可写的文件系统,但它只能在dyno的生命周期中持久化,所写的任何东西只能用于编写文件的dyno。