当前位置: 首页 > news >正文

焦作网站建设哪家专业站长工具app下载

焦作网站建设哪家专业,站长工具app下载,佛山建设专业网站,免费crm试用MinIO 是一种开源的对象存储服务,它基于云原生架构构建,并提供了高性能、易于扩展和安全的存储解决方案。 一.安装和配置 MinIO 服务器 为了演示方便,本文采用Windows安装 1.在官方网站下载MinIO 安装文件,地址:ht…

MinIO 是一种开源的对象存储服务,它基于云原生架构构建,并提供了高性能、易于扩展和安全的存储解决方案。

一.安装和配置 MinIO 服务器

为了演示方便,本文采用Windows安装 

1.在官方网站下载MinIO 安装文件,地址:https://dl.minio.org.cn/server/minio/release/windows-amd64/minio.exe; 

2.在minio.exe目录下创建start.bat配置启动文件:"D:\Java\MinIo"是服务启动时文件存放的位置 

minio.exe server D:\Java\MinIo

3.双击minio.exe文件启动

 

4.创建一个 Spring Boot 项目

        1.创建一个 Spring Boot 项目

        2.添加依赖,注意依赖版本

<!--文件上传-->
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version>
</dependency>
<dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.4</version>
</dependency><!--MinIO对象存储-->
<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.4.3</version>
</dependency>
<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.8.1</version>
</dependency>

二.配置文件

        1.yaml配置文件

#MinIO配置
minio:endpoint: http://127.0.0.01:9000 #连接地址accessKey: minioadmin#账号 默认minioadminsecretKey: minioadmin#密码 默认minioadminbucketName: contractfile #桶名 存放合同文件 桶名校验规则:!name.matches("^[a-z0-9][a-z0-9\\.\\-]+[a-z0-9]$")

         2.配置类,用来连接Minio

@Data
@Configuration
@ConfigurationProperties(prefix = "minio")
public class MinioConfig {//连接地址private String endpoint;//账号 默认minioadminprivate String accessKey;//密码 默认minioadminprivate String secretKey;@Beanpublic MinioClient minioClient() {MinioClient minioClient = MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();return minioClient;}}

        3.工具类,用来操作文件

@Slf4j
@Component
public class MinioUtils {@Autowiredprivate MinioClient minioClient;@Value("${minio.bucketName}")private String bucketName;/*** 操作文件时先创建Bucket* 如果没有Bucket则创建** @param bucketName*/@SneakyThrows(Exception.class)public void createBucket(String bucketName) {if (!bucketExists(bucketName)) {minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());}}/*** 判断Bucket是否存在,true:存在,false:不存在** @param bucketName* @return*/@SneakyThrows(Exception.class)public boolean bucketExists(String bucketName) {return minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());}/*** 判断文件是否存在** @param bucketName* @param fileRealName* @return*/public boolean isObjectExist(String bucketName, String fileRealName) {boolean exist = true;try {minioClient.statObject(StatObjectArgs.builder().bucket(bucketName).object(fileRealName).build());} catch (Exception e) {log.error("[Minio工具类]>>>> 判断文件是否存在, 异常:", e);exist = false;}return exist;}/*** 使用MultipartFile进行文件上传** @param bucketName   存储桶* @param file         文件* @param fileRealName 文件名* @return 文件下载外链*/@SneakyThrows(Exception.class)public String uploadFile(String bucketName, MultipartFile file, String fileRealName) {createBucket(bucketName);InputStream inputStream = file.getInputStream();minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(fileRealName).contentType(file.getContentType()).stream(inputStream, inputStream.available(), -1).build());GetPresignedObjectUrlArgs args = GetPresignedObjectUrlArgs.builder().bucket(bucketName).object(fileRealName).method(Method.GET).build();return minioClient.getPresignedObjectUrl(args);}/*** 删除文件** @param bucketName   存储桶* @param fileRealName 文件名称*/@SneakyThrows(Exception.class)public void removeFile(String bucketName, String fileRealName) {createBucket(bucketName);minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(fileRealName).build());}/*** 下载文件** @param httpServletResponse httpServletResponse* @param fileRealName        文件存储名称* @param fileName            文件下载名称* @throws IOException IOException*/public void downloadFile(String bucketName, String fileRealName, String fileName, HttpServletResponse httpServletResponse) throws Exception {createBucket(bucketName);//获取文件流InputStream inputStream = minioClient.getObject(GetObjectArgs.builder().bucket(bucketName).object(fileRealName).build());//设置响应头信息,告诉前端浏览器下载文件httpServletResponse.setContentType("application/octet-stream;charset=UTF-8");httpServletResponse.setCharacterEncoding("UTF-8");httpServletResponse.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));//获取输出流进行写入数据OutputStream outputStream = httpServletResponse.getOutputStream();// 将输入流复制到输出流byte[] buffer = new byte[4096];int bytesRead = -1;while ((bytesRead = inputStream.read(buffer)) != -1) {outputStream.write(buffer, 0, bytesRead);}// 关闭流资源inputStream.close();outputStream.close();}
}

http://www.tj-hxxt.cn/news/102558.html

相关文章:

  • 可以文章上传视频的wordpress主题谷歌seo最好的公司
  • 网站建设长沙南宁seo排名首页
  • 南宁站建好就够用免费网址注册
  • 图书馆网站建设策划书seo 的原理和作用
  • 适合做网站的图片成都百度关键词排名
  • 蓟州区建设银行官方网站小程序开发教程全集免费
  • ps网站导航条素材百度关键词在线优化
  • 网站的 联系我们怎么做网站排名监控工具
  • php动态网站开发实训教程做一个电商平台大概需要多少钱
  • wordpress 移动建站外贸网站推广服务
  • 做网站的属于什么行业域名注册哪个网站好
  • 婚恋网站策划建设网站需要多少钱
  • 深圳网站建设公cilimao磁力猫搜索引擎
  • 怎么用burp suite做网站扫描如何推广公众号
  • 建设网站代码小红书关键词排名优化
  • wordpress怎么看免费主题青岛网络工程优化
  • 想找人做网站麒麟seo外推软件
  • 基金网站制作网站宣传文案范例
  • 北海市住建局官方网站seo优化软件有哪些
  • 网站建设什么优化疫情防控措施
  • 国际型网站建设山西网络推广
  • 网络营销方法案例seo课程培训要多少钱
  • 西安响应式网站设计临沂网站建设
  • 如何做网站alexa排名简述seo和sem的区别
  • 深圳网站制作哪里好上海百度推广
  • 泉州网站建设报价专业恶意点击软件
  • 做电视直播网站品牌营销策略案例
  • 河南专业网站建设公司推荐实时seo排名点击软件
  • 自己做交友网站微商软文推广平台
  • 东莞南城做网站南京seo公司排名