-
2019-07-29 11:41:31
前提需求:支持用户将oss端的文件进行下载使用。
1.最初分析,将oss端的文件下载到服务端 ==》再将服务端的文件提供用户下载 ==》用户下载完成后,删除服务端临时下载文件。
这样做第一、步骤复杂,加大了程序出错的概率。第二、效率低下,做了两次文件传输。
2.设想的最优方案,既然都是流的传输,如果能够实现 oss端的文件 ==》 用户端。
这样做明显比最初的方案,步骤简洁,不易出错,只要做一次传输,效率明显提高。
环境,jdk1.6.0_45。所以下文的资源释放还是最原始的方式。
实现的效果,用户客户端(Web浏览器)直接下载文件,对于其他客户端的下载,处理逻辑是相通的。
操作开始:
1.获取oss文件的对象(该对象就能获取其对应的流)。
//OSS client,每个项目封装都不太一样,获取OSSObject就是需要用到该实例 this.client = new OSSClient(OSS_ENDPOINT,ACCESS_ID, ACCESS_KEY); //通过上面的client、bucket、key获取oss端文件的OSSObject public OSSObject getOSSObject(String bucket,String key){ return client.getObject(bucket, key); }
2.获取到oss端文件的OSSOBject之后,就可以直接将其进行下载操作了。下面代码核心逻辑用 * * 标注起来了。
public static void downLoadFile(OSSObject ossObject,HttpServletResponse response) throws IOException { BufferedInputStream bis = null; OutputStream toClient = null; try { //*获取ossObject的流* bis = new BufferedInputStream(ossObject.getObjectContent(),512); //获取oss端文件的文件名,用作于下载文件的名称 String[] arr = ossObject.getKey().split("/"); String fileName = arr[arr.length - 1]; response.reset(); toClient = new BufferedOutputStream(response.getOutputStream()); response.setContentType("application/octet-stream"); //处理文件名为中文的情况 response.setHeader("Content-Disposition","attach;filename=" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1")); //*处理oss文件流传输* int number; byte[] buffer = new byte[512]; while ((number = bis.read(buffer)) != -1){ toClient.write(buffer,0,number); } toClient.flush(); toClient.close(); }finally { if(toClient != null){ toClient.close(); } if(bis != null){ bis.close(); } } }
这样就大功告成了,是不是很简单,小伙伴赶紧去试试吧。
更多相关内容 -
webdav客户端中文版
2019-03-30 12:47:17webdav中文客户端,韩棒子的,比Windows自带的好用不知千倍。 -
oracle 11g 64位客户端
2018-10-25 16:20:04oracle 11g 64位客户端 -
Oracle11g64位客户端
2018-07-05 15:30:22oracle11g64位的客户端,可以配合我之前上传的腾讯云安装oracle11g的文档一起使用,在腾讯云上建好oracle11g数据库,在windows系统上可以用plsql访问 -
git客户端64位
2018-04-08 22:20:14git客户端,简单易用git客户端,简单易用git客户端,简单易用git客户端,简单易用git客户端,简单易用git客户端,简单易用 -
oracle12c客户端-windows-64位.7z
2019-08-23 10:58:32不需要安装本地oracle,使用客户端就可以连接到远程oracle数据库,适用于公司过着个人在云服务器上的用户 -
oracle12.2客户端64位操作系统
2019-01-08 13:08:08此客户端适合64位的操作系统安装使用,甲骨文官网原版客户端,绝对原版,欢迎有需要用到的网友下载使用。 -
oracle11g 客户端 windows 64位
2017-11-15 17:00:16oracle11g 客户端 windows 64位 oracle11g 客户端 windows 64位 -
oracle 客户端 64位
2018-06-15 13:09:21oracle客户端64位oracle客户端64位oracle客户端64位oracle客户端64位oracle客户端64位oracle客户端64位 -
oracle11g全家桶(客户端64、32都有,数据库仅有64位)百度云下载链接
2018-06-15 17:14:34oracle11g全家桶(客户端64、32都有,数据库仅有64位)百度云下载链接,作者之前在网上苦找了很久oracle11g的客户端下载,经历过各种绑定安装最后终于下载到了,这里建议有积分的小伙伴还是直接下载吧,实在太难找了... -
Ubuntu20.04版微信客户端安装包
2020-05-05 22:26:58腾讯微信官网没有出Ubuntu版本的客户端,但是可以根据我提供的微信客户端软件,在Ubuntu20.04版本上进行安装,亲测有效! Ubuntu版微信客户端,支持托盘菜单;支持搜索联系人;支持自带表情显示;支持阻止消息撤回的... -
C# TCP/IP异步通信示例,带完整服务端与客户端,完全高度封装,下载即可使用
2017-11-24 17:06:36开发工具:VS2017 如果下载不能打开,可能您的VS版本较低 C#完整代码,下载即可使用,在项目中可以直接使用。 自带客户与服务端心跳包验证。 客户端掉线,服务器自动响应。 所有均为事件与封装完全分享。代码高度... -
win64_11gR2_client客户端下载
2016-10-10 17:08:52win64_11gR2_client客户端安装包下载,顺利好用 -
redis客户端连接工具
2018-01-24 15:57:14redis客户端连接工具 redis客户端连接工具 redis客户端连接工具 -
天融信win10版ssl客户端
2018-04-23 10:50:11支持win10的天融信ssl的sv独立客户端,完美支持win10版本系统 -
oracle11g 32位 客户端 client
2017-10-27 09:44:37oracle11g客户端,包含安装图解教程,可以在百度云下载。 -
Github客户端下载以及使用方法
2021-04-22 14:57:55Github客户端下载以及使用方法 一.创建属于自己的github账号 github官网:https://github.com/ 还没有github账号的可以借鉴我写的这篇文章进行注册,并创建一个仓库:...Github客户端下载以及使用方法
一.创建属于自己的github账号
github官网:https://github.com/
还没有github账号的可以借鉴我写的这篇文章进行注册,并创建一个仓库:https://editor.csdn.net/md/?articleId=115933822下载github客户端
github客户端官网链接:https://desktop.github.com/
我在访问时会出现这种情况,提示我隐私设置错误
不要慌,我这里有网盘资源,分享给大家
链接:https://pan.baidu.com/s/1wGP4IAZo6gyC6VPT6mJyHQ
提取码:ogkg下载之后按照正常的流程进行安装,打开后会出现如下界面:
点击红色框中的选项
进行登录,输入github用户名和密码即可进行登录,如果一直显示无法账户或者密码错误的话,是版本问题,下载最新版的安装使用就好选择第三个Clone a repository,弹出对画框中选择第三个URL标签,第一个对话框填写所给的项目地址(也就是“你创建的githubd的用户名”.github.io,第二个选择本地要保存的位置,选择好以后点击clone 即可将项目克隆到本地
然后就进入到了主界面
使用方法
打开我们的本地路径(如果忘记也不要紧,在GitHub客户端里鼠标右键我们的仓库,选择选择Show in Explorer,这样我们就可以转到刚刚新建的本地仓库路径下)
此时在这个文件路径下的增删改操作均会显示在github客户端中,例如我们在这里新增一个test.txt文件
此时,打开GitHub客户端可以看到 DevOps 仓库有一个新的消息
在客户端的下方填写相关描述,点击 Commit to master 进行提交
点击 Commit to master 只是让GitHub客户端记录这次进行的改动,并不会直接提交到GitHub上面去,如果不想让本次修改提交到github上的,可以点击 Commit to master 下面的 Undo 按钮,让项目还原到这次记录的状态。如果想将本地的改动提交到GitHub网站上,点击 Push origin 上传到GitHub即可
现在可以到自己的GitHub主页上查看我们的仓库,可以看到我们新建的 test.txt 文件已经出现在主页上了
后续的操作只要重复这几步就可实现github的客户端控制。后言:最近一直在学习,学习的东西很多很杂,于是便把自己的学习成果记录下来,便利自己,帮助他人。希望本篇文章能对你有所帮助,有错误的地方,欢迎指出!!!喜欢的话,不要忘记点赞哦!!!
-
git 安装包 git 客户端 下载速度慢
2018-12-03 22:47:33在使用浏览器下载git客户端时,下载速度很慢。 其实可以使用迅雷进行下载git 客户端 输入git下载网址,https://git-scm.com/download/win 在浏览器界面按下 F12,复制出下载的地址。打开迅雷客户端,即可以下载...在使用浏览器下载git客户端时,下载速度很慢。
其实可以使用迅雷进行下载git 客户端
输入git下载网址,https://git-scm.com/download/win
在浏览器界面按下 F12,复制出下载的地址。打开迅雷客户端,即可以下载。
-
SVN客户端下载及安装
2018-07-16 23:28:18官网下载tortoisesvn,下载完成之后,如下图所示: 点击安装进入安装界面,点击接受协议,如下图所示: 选择安装的地址,如下图所示: 安装成功,如下图所示: 当我们安装成功之后...SVN客户端地址:https://osdn.net/projects/tortoisesvn/#
方法/步骤
-
官网下载tortoisesvn,下载完成之后,如下图所示:
-
点击安装进入安装界面,点击接受协议,如下图所示:
-
选择安装的地址,如下图所示:
-
安装成功,如下图所示:
-
当我们安装成功之后,在桌面右击的时候可能不会出现svn的相关的操作选项,这时候需要重启一下电脑的系统,才会出现。当成功出现了下面的图片的时候,说明已经安装成功了,如下图所示:
-
SVN的中文语言包的安装,还是原来的官网地址,选择如下的语言包就会自动下载了,如下图所示:
-
当中文语言包安装完了之后,重启一下才能生效,要在svn的setting里面设置才可以,如下图所示:
-
出现设置页面选择中文简体即可,如下图所示:
-
SVN常见的图标集的介绍,如下图所示:
在上面的图标集中,常规、冲突、增加、无版本控制、修改是最常用的,我们常常也就只需要掌握这些操作就足够使用了。
常规:一个新检出的工作副本使用绿色的对勾做重载。表示SVN状态正常。
修改:当我们开始编辑一个文件后,图标将变成红色感叹号。通过这种方式,可以很容易地看出我们对哪些文件进行了修改操作,但是还没有提交到版本库中。
冲突:如果在提交的过程中出现了冲突,图标将变成黄色感叹号。
增加:加号告诉我们有一个文件或是目录已经被计划加入版本控制。
无版本控制:未加入到版本控制中的文件,需要添加到SVN中。
-
-
SAP客户端下载
2018-11-07 14:05:49SAP客户端下载 -
Oracle数据库客户端各个版本下载
2020-08-01 19:55:46Oracle数据库客户端各个版本下载 -
oracle11g 64位|oracle11g 64位客户端下载 附安装教程 - 121下载站
2021-04-30 10:07:13oracle11g 64位客户端主要适用于64位操作系统,这是一款功能强大的oracle数据库管理工具,有需要的不要错过。oracle11g 64位功能1、oracle客户端的作用主要是为了远程访问oracle服务器用的,如: 现在有A,B,C三台... -
Oracle12c免安装的32位客户端
2018-08-28 16:03:26Oracle12c免安装客户端,直接解压即可,以解决PLSQL等一些只支持32位Oracle的工具的连接使用问题 -
无需客户端下载的方法/天翼云网页下载方法
2021-03-17 09:51:12天意云现在网页下载也学某度了,需要启动客户端来下载,本方法可以让下载按钮复活 演示 方法1 在浏览器添加收藏,,名字随便写,网址输入下面代码,放到收藏栏,下次打开天翼云要下载的 代码如下: javascript:... -
Git客户端下载和安装
2019-06-06 09:28:342 Git客户端下载 1.2.1下载地址 Git客户端官网下载链接:https://git-scm.com/downloads 1.2.2 选择操作系统 根据自己要安装的目标操作系统,选择对应的下载源。这里以Windows X64为例 3 Git客户端安装 3.1 Git... -
w3cschool离线版客户端工具下载
2017-03-23 18:59:42W3Cschool离线版PC客户端是www.w3cschool.cn网站官方推出的正版客户端。我们是一个专业的编程入门学习及技术文档查询应用,提供包括HTML,CSS,Javascript,jQuery,C,PHP,Java,Python,Sql,Mysql等编程语言和开源技术的... -
Git客户端下载及安装
2018-08-23 23:06:46原创地址: ... Git介绍 ...分布式:Git版本控制系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具。...保存点:Git的保存点可以追踪源码中的文件, 并能...这样,我们的Git客户端就下载并安装完成了。 -
如何绕过百度网盘客户端下载大文件
2019-06-04 00:20:01今天分享一个绕过百度网盘客户端下载大文件的方法,上车的乘客请刷卡。 百度网盘限制了下载大文件必须用客户端,如果只是偶尔用一两次就很烦人,网上有很多绕过下载百度网盘客户端下载大文件的方法,有这么几类: ... -
不用百度网盘客户端下载文件
2020-04-24 17:40:17因为在公司内网环境中,不允许安装百度网盘,但是有些文件又是在百度网盘上,浏览器默认下载器又不能下载,老是要启动网盘客户端。所以有不用百度网盘客户端下载文件的需求。 可以用bypy工具解决该问题 ubuntu... -
Oracle11g客户端32位
2018-01-17 11:32:55Oracle11g客户端32位;只有70多m,具有完整版的大多数功能,配合plsql使用