【发布时间】:2018-04-23 10:54:29
【问题描述】:
我正在开发一个闪亮的应用程序,用户可以在其中上传文件并选择 X 参数,然后按下一个按钮,它会生成 5 个图(ggplot2 和 barplot)以及一个动态数据表(DT)。另外,我想把我闪亮的应用程序放到一个 linux 服务器中。
我使用tempfiles() 来创建用于创建绘图和DT 的每个文件。
之后,我的问题是:
当用户关闭闪亮的应用程序(关闭窗口)时,临时文件会自动删除吗?
如果没有,我该怎么做才能删除临时文件?
我的尝试:
session$onSessionEnded(function() {
if (!is.null(x1)) {
file.remove(x1)
}
if (!is.null(x2)) {
file.remove(x2)
}
if (!is.null(x3)) {
file.remove(x3)
}
if (!is.null(x4)) {
file.remove(x4)
}
if (!is.null(xx)) {
file.remove(xx)
}
})
或者:
session$onSessionEnded(function() {
files <- list.files(tempdir(), full.names = T, pattern = "^file")
file.remove(files)
})
使用该代码,我在用户按下按钮一次时删除临时文件,如果用户按下按钮超过 1 次,则窗口关闭,它只会删除最后生成的文件。第二部分删除临时目录中的所有文件,但这会影响其他用户吗?(我认为是的,这就是我需要另一个解决方案的原因)。
ggplot 和 barplot 生成的 .png 临时文件不会自动删除。
我担心的是,如果临时文件不会自动删除,那么 linux 服务器会因为临时文件太多而崩溃。
希望你能解决我的疑惑。阿特琼。
【问题讨论】:
标签: r shiny temporary-files