首页 > 解决方案 > 使用烧瓶在浏览器中从 Amazon S3 打开文件

问题描述

我有一个flask允许用户上传和下载文件的应用程序。

但是,一旦上传了文件,我希望有一个按钮可以让他们打开该文件,但在浏览器中,就像使用本地文件一样。

我创建了按钮并将其链接到下面的脚本:

这是我尝试过的:

@app.route('/openFileInBrowser/<filename>')
def openFileInBrowser(filename):
    bucket = 'testBucket'

    s3_client = boto3.client('s3')

    presigned_url = s3_client.generate_presigned_url('get_object', Params = {'Bucket':
    bucket, 'Key': filename}, ExpiresIn = 3600)

    return presigned_url

然而,这一切只是重定向到一个presigned_url上面写着的网页。

更新:

我现在可以重定向到the presigned_url使用return redirect(presigned_url, code=302). 但是,对于 PDF 和 TXT 等文件,它不会在浏览器中查看它们,而是下载文件。我怎样才能让它在他们的浏览器中打开文件呢?

标签: pythonamazon-web-servicesflaskamazon-s3boto3

解决方案


推荐阅读