python - 使用烧瓶在浏览器中从 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 等文件,它不会在浏览器中查看它们,而是下载文件。我怎样才能让它在他们的浏览器中打开文件呢?
解决方案
推荐阅读
- javascript - 当悬停到特定块(div)[工作]时尝试更改部分的背景
- r - 从R中的特定列中删除单元格中的重复项?
- css - 如何更改 cshtml 文件标题部分的属性?
- javascript - jcrop宽度,高度通过输入数值调整?
- domexception - 当链接单击的元素正在动画并停止时
- numpy - 从 numpy 中提取行并将行添加到特定索引
- json - 在包含字典的列表中查找特定字符串的计数
- ssms - 维度 OLAP Cube 无法处理
- c++ - 如何在不转换数字的情况下按顺序(增加)生成所有二进制字符串(增加)到 2^63?
- reactjs - 当从浏览器输入 url 时,AWS 托管(s3,cloudfront)静态反应网站不会路由到子页面