在Heroku的R Shiny应用中无法将临时CSV保存到/home/app目录
Heroku上Shiny应用生成临时CSV文件的问题解决
优先使用相对路径替代绝对路径:Heroku的Shiny应用默认工作目录就是
/home/app,直接用相对路径写入,避免绝对路径可能带来的权限或路径识别问题:df <- c(0,0) write.csv(df, "test.csv")确认当前工作目录:如果不确定路径,在代码中添加打印当前工作目录的语句,确保写入路径正确:
print(getwd()) # 输出当前工作目录,以此为准写入文件 df <- c(0,0) write.csv(df, file.path(getwd(), "test.csv"))改用系统临时文件(推荐):临时使用的文件无需指定固定路径,用R的
tempfile()函数自动生成有写入权限的临时文件,无需担心路径和权限问题:df <- c(0,0) temp_csv <- tempfile(fileext = ".csv") write.csv(df, temp_csv) # 后续直接使用temp_csv路径即可,系统会自动管理文件生命周期检查文件的注意事项:
- Heroku的dyno是临时容器,应用重启后所有本地文件会被销毁,若你是重启后再进Bash,之前生成的文件已经不存在。
- 确保Bash进入的是当前运行应用的dyno,可通过
heroku ps:exec -d <dyno-name>指定dyno进入,避免进入不同容器找不到文件。
内容的提问来源于stack exchange,提问作者akshay bholee
相关产品推荐
相关产品推荐

