作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Flask 应用程序,可以让用户下载 MP3 文件。如何使下载的 URL 仅在特定时间段内有效?
例如,不要让任何人直接访问example.com/static/sound.mp3
。并访问该文件,我想验证每个请求以防止不必要的带宽量。
我正在使用 Apache 服务器,但如果更容易实现,我可能会考虑切换到另一个服务器。另外,我不想使用 Flask 来提供文件,因为这会强制 Flask 直接将文件提供给用户,从而导致性能开销。相反,它应该使用 Apache 来提供文件。
最佳答案
您可以使用 S3 通过临时 URL 托管文件。使用 Flask 将文件上传到 S3(使用 boto3),但使用动态生成的临时 key 。
示例网址:http://yourbucket.s3.amazon.com/static/c258d53d-bfa4-453a-8af1-f069d278732c/sound.mp3
然后,当你告诉用户在哪里下载文件时,给他们那个 URL。然后,您可以使用 cron 作业在时间段结束时删除 S3 文件。
这样,Amazon S3 直接提供文件,从而完全绕过您的 Flask 服务器。
关于python - 如何在 Flask 中生成临时下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32772343/
我是一名优秀的程序员,十分优秀!