html - 如何从我的 Django 网站下载文件?
问题描述
我有一个小型 django 网站,允许上传托管在 pythonanywhere 上的文件。文件上传到 aws s3。
现在的问题是,即使在 html 中存在下载属性,浏览器仍然呈现文件而不是下载它
<a download href="{{file_url}}">Download</a>
解决方案
“....下载仅适用于同源 URL,或 blob: 和 data: 方案...”
您的 aws s3 链接很可能与您的站点不同源(相同的域等)。
如果这是您遇到的问题,我想到的一种解决方法是,您可以在您的网站上创建一个接收文档标识符的传输 url,从 aws s3 下载,然后将其内容作为响应转发。通过这种方式,您还可以控制可能需要显式设置以使浏览器按照您想要的方式运行的内容类型之类的标头。
另外,如果您决定采用这样的解决方案,您必须采取预防措施来控制传输 url 的请求内容,并且只传输您的网站打算传输的内容。否则,您将打开一个类似于“打开重定向”漏洞的漏洞。
推荐阅读
- javascript - 如何使用javascript进行计算加减
- protractor - 有没有办法将 protractor.conf 套件名称读入 txt 文件?
- python - 多次在服务器端运行代码并在 html 渲染上使用结果
- python - 在列表中查找与给定数字最接近的位置
- amazon-neptune - 如何使用 Python 连接到 AWS Neptune(图形数据库)?
- reactjs - 为什么在单个 Jest-Enzyme 测试用例中进行多个断言会产生错误的测试结果?
- flutter - 等待页面转换完成
- python - 为什么 Shebang 行中的 Anaconda python 找不到脚本(cygwin)?
- python - 如何在多个条件下向 np.array 添加元素?
- ruby-on-rails - 尝试使用 rails.application.credentials 进行身份验证时出现 AWS S3 错误