[转]从minio中读取文件流进行下载文件

摘要:
本文转自:https://blog.csdn.net/ZHANGLIZENG/article/details/82892678一、获取Minio连接publicstaticStringminioUrl;publicstaticStringminioUsername;publicstaticStringminioPassword;@Value("${system.minioUrl}")private

本文转自:https://blog.csdn.net/ZHANGLIZENG/article/details/82892678

一、获取Minio连接
public static String minioUrl;
public static String minioUsername;
public static String minioPassword;
@Value("${system.minioUrl}")
private String minioUrlTmp;
@Value("${system.minioUsername}")
private String minioUsernameTmp;
@Value("${system.minioPassword}")
private String minioPasswordTmp;

@PostConstruct
public void init() {
minioUrl = minioUrlTmp;
minioUsername = minioUsernameTmp;
minioPassword = minioPasswordTmp;
}
public static MinioClient getInstance() {
if (minioClient == null) {
synchronized (FileUtils.class) {
if (minioClient == null) {
try {
//new FileUtils();
minioClient = new MinioClient(minioUrl,minioUsername,minioPassword);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
return minioClient;
}

二、读取文件流

InputStream in = null;
OutputStream out = null;
ExamineFileList examineFileList = examineFileListRepository.findOne(guid);
MinioClient minioClient = FileUtils.getInstance();
try {
in = minioClient.getObject(examineFileList.getFileDirectory(), examineFileList.getFilePath()+examineFileList.getFileNameUuid());
int len = 0;
byte[] buffer = new byte[1024];
out = response.getOutputStream();
response.reset();
response.addHeader("Content-Disposition",
" attachment;filename=" + new String(examineFileList.getFileName().getBytes(),"iso-8859-1"));
response.setContentType("application/octet-stream");
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (in != null){
try {
in.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
---------------------
作者:ZHANGLIZENG
来源:CSDN
原文:https://blog.csdn.net/ZHANGLIZENG/article/details/82892678
版权声明:本文为博主原创文章,转载请附上博文链接!

免责声明:文章转载自《[转]从minio中读取文件流进行下载文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇js 浏览器窗口 刷新、关闭事件go语言游戏服务端开发(一)——架构下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java 将数据库中的每一条数据取出放入数组或者List中

1、如何将数据库中数据按照行(即一整条数据)取出来,存入到数组当中? public static String str = null; // 将StringBuffer转化成字符串 public static StringBuffer sb = new StringBuffer(); // StringBuffer便于字符串的增删改查操作...

.Net Task<T>的一种比较神奇的卡死情况(Wait/Result卡死, await能得到结果)

出现的环境.Net4.0 + WebApi1(4.0.30506.0) +Microsoft.Bcl.Async.1.0.168 自己死活看不出原因, 分享出来给大家看看,希望有人能找到问题的关键 出现错误的是下面这两个模块 下面的CorsMessageHandler,抄的http://www.cnblogs.com/artech/p/cors-4-asp...

ehcache 缓存

、通过使用API来动态的添加缓存(将缓存的配置信息通过java代码来实现而非写在配置文件) 2、通过配置文件ehcache.xml创建缓存实例 packageorg.jeecgframework.cache; importorg.jeecgframework.core.util.StringExt; public classCacheInstanc...

Dom4j总结

1、DOM4J简介 DOM4J是 dom4j.org 出品的一个开源 XML 解析包。DOM4J应用于 Java 平台,采用了 Java 集合框架并完全支持 DOM,SAX 和 JAXP。 DOM4J 使用起来非常简单。只要你了解基本的 XML-DOM 模型,就能使用。 Dom:把整个文档作为一个对象。 DOM4J 最大的特色是使用大量的接口。它的主要接口...

ASP.NET中Get和Post的用法 Request.QueryString,Request.Form,Request.Params的区别

表单form的提交有两种方式,一种是get的方法,一种是post 的方法.看下面代码,理解ASP.NET Get和Post两种提交的区别:   代码 view plaincopy to clipboardprint?< form id="form1" method="get" runat="server"> < div>...

aspose授权亲测可用配套代码

支持excel,word,ppt,pdf using Aspose.Cells; using Aspose.Words.Saving; using ESBasic; using OMCS.Engine.WhiteBoard; using System; using System.Collections.Generic; using System.Drawi...