需求:

视频文件在后台可预览,可下载。

目前难题:

在点击下载时,OSS的签名url在浏览器中会直接播放,不提示下载

原因 :

OSS在上传时未指定文件元信息。官方推荐,指定文件元信息 ‘Content-Disposition' => 'attachment; filename="xxxxxx"',来实现文件的强制下载。但是这和实际需求产生冲突。

解决方案:

获取OSS的签名URL时,后面加上sub-resource,具体参数如下:

response-content-disposition=attachment;filename=xxxxx

指定后,阿里云会将其内容加到response的Content-Disposition中,这样就实现了强制下载

注意!!!

因为signUrl生成规则问题,加上sub-resource生成的签名是不能直接使用的。生成的签名URL如下:

http://xxx.oss-cn-shanghai.aliyuncs.com/xxx/xxxx/01.mp4%3Fresponse-content-disposition%3Dattachment?OSSAccessKeyId=xxxxxx&Expires=1567485506&Signature=xxxxx

会发现sub-resource参数作为object的key存在了,我们需要将其转为url其中的一个参数,才行,因此需要对此url进行处理如下:

### 经过urldecode处理
http://xxx.oss-cn-shanghai.aliyuncs.com/xxx/xxxx/01.mp4?response-content-disposition=attachment&OSSAccessKeyId=xxxx&Expires=1567485565&Signature=xxxxx
### 未处理过得url(应使用此URL)
http://xxx.oss-cn-shanghai.aliyuncs.com/xxx/xxxx/01.mp4?response-content-disposition=attachment&OSSAccessKeyId=xxxx&Expires=1567485953&Signature=xxxx

至此满足文件的下载需求,同时也能满足在线展示播放。

阿里云OSS获取文件强制下载的签名URL相关推荐

  1. Springboot集成 阿里云OSS上传及下载

    文章目录 使用手册 maven依赖及环境配置 定义配置bean及OSS工具类 定义UploadController和DownloadController 下载接口优化为返回重定向oss路径 遇到的问题 ...

  2. 阿里云OSS视频文件迁移视频点播,并导出媒资excel表

    阿里云OSS视频文件迁移视频点播,并导出媒资excel表 一 介绍 1 OSS 是什么 2 视频点播是什么 3 制作背景 阿里云磁盘(读文件) 阿里云点播(写文件) 阿里云sdk导入依赖 二 流程 1 ...

  3. 使用阿里云OSS完成文件的上传样例

    使用阿里云OSS完成文件的上传 基础条件: 提前注册过阿里云账户 账户里有余额(文件上传按流量收费) 开通过OSS的基础服务 如果有以上基础条件不满足的小伙伴,去度娘了解一下. 前言 有过基础的小伙伴 ...

  4. 使用阿里云OSS实现文件上传

    概述场景 文件上传,是程序开发中必须会使用到的一个功能,比如: 添加商品,用户头像,文章封面等需求 富文本编辑(插件文件上传) 文件上传的原理是什么? 我们为什么要实现文件上传,其实就要共享资源,大家 ...

  5. 使用阿里云OSS实现文件的上传、下载、删除及修改功能

    一.配置OSS相关配置信息 1.要配置 OSS 相关配置信息,您可以按照以下步骤操作: 登录阿里云控制台,进入 OSS 控制台,创建一个新的 OSS Bucket,并记录下以下信息:Bucket 名称 ...

  6. wget下载阿里云oss的文件报错403

    问题 在实际工作中,我们为了方便,会将一些脚本储存在云端(阿里云OSS),这样方便我们使用和下载,但是在实际的使用过程中,我们会遇到一些问题. 示例链接:https://djxlsp.oss-cn-s ...

  7. 利用阿里云OSS对文件进行存储,上传等操作

    --pom.xml加入阿里OSS存储依赖 <!--阿里云OSS存储--> <dependency><groupId>com.aliyun.oss</group ...

  8. 阿里云 oss多文件上传

    平时在做 oss 上传时,通过都是单个文件上传,但是前几天工作时涉及到多个文件的上传,在所有文件都上传完成后才能再做后续的代码执行.于是在原有的oss上传基础上添加for循环去挨个上传. 介绍一下,o ...

  9. 基于阿里云oss的文件管理系统

    登录模块 登录逻辑: 通过username+password+邮箱验证码登录: 验证前端邮箱code是否等于redis中的邮箱code. 验证数据库中是否存在该用户. 注册逻辑: 通过 {" ...

最新文章

  1. SQLite API
  2. PHP水果店管理系统,水果店连锁店管理系统实现一体化功能
  3. VS生成的exe文件如何在其他电脑上运行
  4. 神秘操作系统Ocean惊艳曝光引众说纷纭 UI同质化局面或被打破
  5. 可以用img做参数的成功例子
  6. LINUX安装7Zip
  7. [Docker] Docker安装和简单指令
  8. 机器学习 | 数学基础
  9. Ubuntu通过清华镜像源下载软件
  10. jQuery插件应用之--- 选项卡插件的使用(10级学员 韩晓爽课堂笔记)
  11. value too long for type character varying(32)
  12. CAN总线和CANOpen协议栈总结
  13. 【年终总结】2017年下半年年终总结——试着将一切归零,整装再出发
  14. 【行人轨迹预测数据集——ETH、UCY】
  15. 什么是附近推?附近推怎么投放?
  16. 头条粉丝红利期来了,最新涨粉攻略我真不想告诉你
  17. COCO数据集的介绍和使用
  18. jpush推送格式 swift_swift 极光推送
  19. adb 命令 推文件_ADB放文件和取文件\adb push 、 adb pull
  20. Postman Pre-request 使用

热门文章

  1. genymotion镜像下载慢使用迅雷下载
  2. 虚拟机正在应用计算机设置,vmware虚拟机安装windows 10 technical preview卡在“正在准备设置50%”的解决办法-网络教程与技术 -亦是美网络...
  3. 今天是个天气晴朗的日子
  4. 水文分析与计算——年均流量趋势检验(Mann-Kendall法、线性回归法)
  5. python查找文字在图片中的位置_如何快速提取出图片中文字,强烈推荐这款免费软件!...
  6. RPC 就好像是谈一场异地恋
  7. 自动化构建部署(CICD)
  8. python的几种非线性回归
  9. 全球与中国Adobe渠道合作伙伴市场现状及未来发展趋势
  10. 论文解读:AdderSR Towards Energy Efficient Image Super-Reso