You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过简单HTML链接从Azure Blob Storage下载视频?

强制下载Azure Blob Storage中的MP4视频

问题的核心在于浏览器会根据Blob返回的Content-Type头来决定是播放还是下载文件。Azure Blob Storage默认会给MP4文件设置Content-Type: video/mp4,这时候即使你在HTML链接里加了download属性,浏览器还是会优先选择播放这个视频,而不是触发下载。

要解决这个问题,最直接有效的方法是修改Blob的Content-Disposition响应头,告诉浏览器把这个文件作为附件处理,强制触发下载。下面是几种具体的实现方式:

方法1:在Azure Portal中手动修改单个Blob属性

  • 登录Azure Portal,找到你的存储账户
  • 进入对应的容器,找到misc/ECM.mp4这个Blob
  • 右键点击该Blob,选择「属性」
  • 滚动到「高级」区域,找到「Content-Disposition」字段,填入:
    attachment; filename="ECM_video.mp4"
    
  • 点击「保存」即可。之后再访问你的HTML链接,浏览器就会直接下载文件而不是播放了。

方法2:使用Azure CLI批量修改(适合多个文件)

如果需要处理多个Blob,可以用Azure CLI命令来批量更新属性。执行以下命令(替换占位符为你的实际信息):

az storage blob update \
  --account-name <你的存储账户名> \
  --container-name <你的容器名> \
  --name misc/ECM.mp4 \
  --content-disposition "attachment; filename='ECM_video.mp4'"

方法3:上传Blob时提前设置属性

如果你是通过代码或者工具上传Blob,可以在上传阶段就指定Content-Disposition属性,避免后续修改:

  • 比如用Azure Storage Explorer上传时,在「上传」对话框的「高级选项」里设置该属性;
  • 用C#代码上传的话,可以在BlobHttpHeaders中设置:
    var headers = new BlobHttpHeaders
    {
        ContentDisposition = "attachment; filename=\"ECM_video.mp4\"",
        ContentType = "video/mp4" // 保持原Content-Type不变,只添加Content-Disposition
    };
    await blobClient.UploadAsync(fileStream, headers);
    

补充:临时方案(不修改Blob属性)

如果暂时无法修改Blob的属性,你可以搭建一个简单的代理服务(比如Azure Function),在转发Blob请求时修改响应头,添加Content-Disposition: attachment。不过这种方式需要额外的开发和维护成本,优先推荐前面的直接修改Blob属性的方法。

内容的提问来源于stack exchange,提问作者Kram_Koorbse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:22:58