阿里云OSS获取文件强制下载的签名URL
需求:
视频文件在后台可预览,可下载。
目前难题:
在点击下载时,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相关推荐
- Springboot集成 阿里云OSS上传及下载
文章目录 使用手册 maven依赖及环境配置 定义配置bean及OSS工具类 定义UploadController和DownloadController 下载接口优化为返回重定向oss路径 遇到的问题 ...
- 阿里云OSS视频文件迁移视频点播,并导出媒资excel表
阿里云OSS视频文件迁移视频点播,并导出媒资excel表 一 介绍 1 OSS 是什么 2 视频点播是什么 3 制作背景 阿里云磁盘(读文件) 阿里云点播(写文件) 阿里云sdk导入依赖 二 流程 1 ...
- 使用阿里云OSS完成文件的上传样例
使用阿里云OSS完成文件的上传 基础条件: 提前注册过阿里云账户 账户里有余额(文件上传按流量收费) 开通过OSS的基础服务 如果有以上基础条件不满足的小伙伴,去度娘了解一下. 前言 有过基础的小伙伴 ...
- 使用阿里云OSS实现文件上传
概述场景 文件上传,是程序开发中必须会使用到的一个功能,比如: 添加商品,用户头像,文章封面等需求 富文本编辑(插件文件上传) 文件上传的原理是什么? 我们为什么要实现文件上传,其实就要共享资源,大家 ...
- 使用阿里云OSS实现文件的上传、下载、删除及修改功能
一.配置OSS相关配置信息 1.要配置 OSS 相关配置信息,您可以按照以下步骤操作: 登录阿里云控制台,进入 OSS 控制台,创建一个新的 OSS Bucket,并记录下以下信息:Bucket 名称 ...
- wget下载阿里云oss的文件报错403
问题 在实际工作中,我们为了方便,会将一些脚本储存在云端(阿里云OSS),这样方便我们使用和下载,但是在实际的使用过程中,我们会遇到一些问题. 示例链接:https://djxlsp.oss-cn-s ...
- 利用阿里云OSS对文件进行存储,上传等操作
--pom.xml加入阿里OSS存储依赖 <!--阿里云OSS存储--> <dependency><groupId>com.aliyun.oss</group ...
- 阿里云 oss多文件上传
平时在做 oss 上传时,通过都是单个文件上传,但是前几天工作时涉及到多个文件的上传,在所有文件都上传完成后才能再做后续的代码执行.于是在原有的oss上传基础上添加for循环去挨个上传. 介绍一下,o ...
- 基于阿里云oss的文件管理系统
登录模块 登录逻辑: 通过username+password+邮箱验证码登录: 验证前端邮箱code是否等于redis中的邮箱code. 验证数据库中是否存在该用户. 注册逻辑: 通过 {" ...
最新文章
- SQLite API
- PHP水果店管理系统,水果店连锁店管理系统实现一体化功能
- VS生成的exe文件如何在其他电脑上运行
- 神秘操作系统Ocean惊艳曝光引众说纷纭 UI同质化局面或被打破
- 可以用img做参数的成功例子
- LINUX安装7Zip
- [Docker] Docker安装和简单指令
- 机器学习 | 数学基础
- Ubuntu通过清华镜像源下载软件
- jQuery插件应用之--- 选项卡插件的使用(10级学员 韩晓爽课堂笔记)
- value too long for type character varying(32)
- CAN总线和CANOpen协议栈总结
- 【年终总结】2017年下半年年终总结——试着将一切归零,整装再出发
- 【行人轨迹预测数据集——ETH、UCY】
- 什么是附近推?附近推怎么投放?
- 头条粉丝红利期来了,最新涨粉攻略我真不想告诉你
- COCO数据集的介绍和使用
- jpush推送格式 swift_swift 极光推送
- adb 命令 推文件_ADB放文件和取文件\adb push 、 adb pull
- Postman Pre-request 使用
热门文章
- genymotion镜像下载慢使用迅雷下载
- 虚拟机正在应用计算机设置,vmware虚拟机安装windows 10 technical preview卡在“正在准备设置50%”的解决办法-网络教程与技术
-亦是美网络...
- 今天是个天气晴朗的日子
- 水文分析与计算——年均流量趋势检验(Mann-Kendall法、线性回归法)
- python查找文字在图片中的位置_如何快速提取出图片中文字,强烈推荐这款免费软件!...
- RPC 就好像是谈一场异地恋
- 自动化构建部署(CICD)
- python的几种非线性回归
- 全球与中国Adobe渠道合作伙伴市场现状及未来发展趋势
- 论文解读:AdderSR Towards Energy Efficient Image Super-Reso