Django项目中避免阿里云OSS视频浏览器自动播放
在Django项目中使用阿里云OSS存储视频,常常遇到用户点击下载按钮后,浏览器直接播放视频而非下载的问题。本文提供一种简便的解决方案。
问题: 前端下载按钮触发后,Django后端返回OSS视频链接(例如:oss.hanzhou.com/mp4/JDUkd63h.mp4),浏览器直接播放视频,未弹出下载对话框。
原因: 浏览器根据HTTP响应头中的Content-Type判断文件类型。 video/mp4等视频类型导致浏览器直接播放;而application/octet-stream则触发下载对话框。
解决方案: 直接在阿里云OSS中修改视频文件的HTTP头,将Content-Type设置为application/octet-stream。 无需修改Django后端代码。 当浏览器请求该链接时,接收到Content-Type: application/octet-stream,便会弹出下载对话框,而不是自动播放。 这与处理mp3文件类似,修改audio/mpeg为application/octet-stream也能实现下载。 此方法简单高效,避免了复杂的Django端逻辑处理。