最近上传阿里云的时候同一个文件上传两个服务地址,第一个文件读取以后第二个再去读取就拿不到了.代码如下: //内网上传OSS获取key值 String ossKey = OSSClientUtil.getOSSURL(endpoint, accessKeyId, accessKeySecret, bucketName, key, inputStream); //外网上传OSS获取key值 String outOssLink = OSSClientUtil.getOutOSSLink(outEndp…
前言:今天工作的需要需要读取aws云上S3桶里面的PDF数据,第一步能够正常的获取PDF文件的InputStream流,然后,我为了测试使用了IOUtils.toString(is)将流System.out.println()输出后,然后再次使用获取的流,这时操作失败,具体如下: path = "s3://testpatsnapus/steven/KR/A/10/20/03/00/21/58/8/EM_0001805590063.pdf"; InputStream ins = AWSS…
最近参与了github上的一个开源项目 Mycat,是一个mysql的分库分表的中间件.发现其中读取配置文件的代码,存在频繁多次重复打开,读取,关闭的问题,代码写的很初级,稍微看过一些框架源码的人,是不会犯这样的错误的.于是对其进行了一些优化. 优化之前的代码如下所示: private static Element loadRoot() { InputStream dtd = null; InputStream xml = null; Element root = null; try { dtd…
由于 request中getReader()和getInputStream()只能调用一次 在项目中,可能会出现需要针对接口参数进行校验等问题. 因此,针对这问题,给出一下解决方案 实现方法:先将RequestBody保存为一个byte数组,然后通过Servlet自带的HttpServletRequestWrapper类覆盖getReader()和getInputStream()方法,使流从保存的byte数组读取.然后再Filter中将ServletRequest替换为ServletReques…
文件上传配置: <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8"></property> <property name="m…
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://github.com/jiangxincode 知乎地址: https://www.zhihu.com/people/jiangxinnju 在使用Servlet进行Web开发的时候,有时候为了增加必要的业务处理而又不想修改现有的程序,往往采用Filter.这样在各个Filter中可能都要读取Serv…
在进行一些如发送短信.邮件的业务时,我们经常会使用一个表来存储待发送的数据,由后台多个线程不断的从表中读取待发送的数据进行发送,发送完成后再将数据转移到历史表中,这样保证待发送表的数据一般情况下不会太多.如待发送表结构为: Create Table SMS(ID int not null identity(1,1),Content varchar(1024),Status int not null,CreateTime datetime); Status 取值:0未读取 1已读取 这样设计的好处…
//HttpContext context.Request.EnableRewind(); //创建缓冲区存放Request.Body的内容,从而允许反复读取Request.Body的Stream using (var ms=new MemoryStream()) { context.Request.Body.Position = 0;  //请求到控制器之后 Position重置0 context.Request.Body.CopyTo(ms); context.Request.Body.Po…
获取到一个inputstream后,可能要多次利用它进行read的操作.由于流读过一次就不能再读了,而InputStream对象本身不能复制,而且它也没有实现Cloneable接口,所以得想点办法. 实现思路: 1.先把InputStream转化成ByteArrayOutputStream 2.后面要使用InputStream对象时,再从ByteArrayOutputStream转化回来 package com.test; import java.io.ByteArrayInputStream;…
在用reset接口的时候,常常会使用request.getInputStream()方法,但是流只能读取一次,一旦想要加上一个过滤器用来检测用户请求的数据时就会出现异常.   在过滤器中通过流读取出用户post提交过来的数据,这是流已经读取了一次,那么该流就已经作废了,所以在contorller再次读取用户请求的数据时就会抛出异常. 解决方法   方法一:   参见:http://www.cnblogs.com/jiangxinnju/p/5709378.html 简单说一下原理,其实就是通过自…