flask send_file无法使用tar.gz文件

时间:2015-10-11 10:57:21

标签: python flask tar gz sendfile

我有一个my_folder.tar.gz存档,其结构为

my_folder.tar.gz:
    my_folder/
        file1
        file2

我构建了一个基本的烧瓶终点,说:

@blueprint.route('/download')
def download():
    return send_file('/path/to/my_folder.tar.gz',
                     as_attachment=True,
                     attachment_filename='my_name.tar.gz')

当我第一次运行它时,一切运行顺利,浏览器下载正确的存档。问题是当我第二次运行它时,在存档中有一个文件my-name.tar-1而不是我希望发送的文件夹。我再试一次,文件名为my-name.tar-2等等。

事实证明,当我将attachment_filename参数更改为新值时,下载再次有效,但也只有一次。 send_from_directory()函数也会出现同样的情况。

这是一种非常离奇的行为。有没有人知道可能会发生什么?

1 个答案:

答案 0 :(得分:0)

您必须使用

return send_file('/path/to/my_folder.tar.gz',as_attachment=True, attachment_filename='my_name.tar.gz, cache_timeout=0')