使用flask在浏览器中从Amazon S3打开文件

2024-06-16 09:56:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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的网页

更新:

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


Tags: 文件用户client应用程序urlflaskreturns3