我知道它已被问到,但我有一个Python脚本在Heroku中生成一个文件。我在Cedar堆栈上,显然现在允许您在/app
内的任何地方进行编写,而不仅仅是/tmp
。
基本上,我运行一个脚本,我感兴趣的文件被放在/app
中,如果我没弄错的话,我的Heroku应用程序会使用某种临时目录。我会使用/app/test.txt
作为我的脚本生成的文件示例,我有兴趣建立链接。
有趣的是,当我在Python脚本中执行ls
时(通过os.subprocess或类似的东西),我得到/app
中所有内容的目录列表,包括requirements.txt, Procfile, /templates/
等等on,包括我感兴趣的test.txt
文件。
所以,我的Python脚本如下所示:
@app.route('/', methods=['POST'])
def my_form_post():
return render_template("my_form_2.html", filename = "test.txt")
和相应的模板my_form_2.html如下所示:
<!DOCTYPE html>
<html lang="en">
<body>
<a href={{filename}}>Right-click to download!</a>
</body>
</html>
上面提到html href
的关键是我希望它指向一个网址,例如my-app.herokuapp.com/app/test.txt
。上面的HTML产生前面的链接,遗憾的是它不是有效的。从本质上讲,我试图获取我使用Python脚本创建的文件的绝对路径。关于如何做到的任何想法?
在有人提到S3之前,我现在试图避免使用它,因为它是一个小而且不需要转移到其他服务器的文件