Python 从Heroku检索文件
我知道有人问过,但我有一个Python脚本,可以在Heroku中生成一个文件。我在Cedar stack上,它显然现在允许您在Python 从Heroku检索文件,python,heroku,flask,Python,Heroku,Flask,我知道有人问过,但我有一个Python脚本,可以在Heroku中生成一个文件。我在Cedar stack上,它显然现在允许您在/app中的任何位置进行编写,而不仅仅是/tmp 基本上,我运行一个脚本,我感兴趣的文件被放到/app,如果我没有弄错的话,它是我的Heroku应用程序使用的某种临时目录。我将使用/app/test.txt作为由我的脚本生成的文件的一个示例,我对创建链接感兴趣 有趣的是,当我在Python脚本中执行ls时(通过os.subprocess或类似的方式),我会得到/app中所
/app
中的任何位置进行编写,而不仅仅是/tmp
基本上,我运行一个脚本,我感兴趣的文件被放到/app
,如果我没有弄错的话,它是我的Heroku应用程序使用的某种临时目录。我将使用/app/test.txt
作为由我的脚本生成的文件的一个示例,我对创建链接感兴趣
有趣的是,当我在Python脚本中执行ls
时(通过os.subprocess或类似的方式),我会得到/app
中所有内容的目录列表,包括requirements.txt、Procfile、/templates/
等等,包括我感兴趣的test.txt
文件
因此,我的Python脚本如下所示:
@app.route('/', methods=['POST'])
def my_form_post():
return render_template("my_form_2.html", filename = "test.txt")
<!DOCTYPE html>
<html lang="en">
<body>
<a href={{filename}}>Right-click to download!</a>
</body>
</html>
相应的模板my_form_2.html如下所示:
@app.route('/', methods=['POST'])
def my_form_post():
return render_template("my_form_2.html", filename = "test.txt")
<!DOCTYPE html>
<html lang="en">
<body>
<a href={{filename}}>Right-click to download!</a>
</body>
</html>
上面的html href
的关键是我希望它指向一个URL,比如my app.herokuapp.com/app/test.txt
。上面的HTML生成前面的链接,不幸的是该链接无效。从本质上讲,我试图获得使用Python脚本创建的文件的绝对路径。关于如何做到这一点有什么想法吗
在任何人提到S3之前,我现在尽量避免使用它,因为它是一个小文件,不需要传输到其他服务器。我认为这不是一个好主意。一点也不。比如:
send\u file(os.path.join)(os.path.abspath(os.path.dirname(\uu file\uu),filename)
也许吧。谢谢大家。我最终使用了亚马逊的S3。