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

虚拟服务器和如何创建网站滨江网站建设

虚拟服务器和如何创建网站,滨江网站建设,wordpress分类含有中文,wordpress+积分+文章minio是一款分布式存储系统&#xff0c;上一篇详细介绍了minio在windows环境下的搭建集群并通过nginx实现负载均衡&#xff0c;这里简单介绍下springboot项目整合minio并实现文件的上传下载删除等操作。 一、依赖的引入 1.1、maven项目 <dependency><groupId>io…
minio是一款分布式存储系统,上一篇详细介绍了minio在windows环境下的搭建集群并通过nginx实现负载均衡,这里简单介绍下springboot项目整合minio并实现文件的上传下载删除等操作。

一、依赖的引入

1.1、maven项目

<dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.3.0</version>
</dependency>

1.2、普通项目

普通项目采用手动引入jar包方式会挺麻烦的,推荐使用maven来引入依赖
普通项目使用minio需要引入jar包大致包括minio-8.3.0.jar ; okio-2.5.0.jar ; okhttp-4.8.1.jar ; guava-22.0.jar

二、minio配置类

@Configuration
@Slf4j
public class MinioConfig {@Value("${minio.endpoint}")private String endpoint;@Value("${minio.accessKey}")private String accessKey;@Value("${minio.secretKey}")private String secretKey;@Value("${minio.bucketName}")private String bucketName;@Beanpublic MinioClient minioClient(){MinioClient minioClient = MinioClient.builder().endpoint(endpoint).credentials(accessKey, secretKey).build();try {boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());if(!found){minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());log.info("minio初始化桶:"+bucketName);}} catch (Exception e) {log.error(e.getMessage());}return minioClient;}
}

其中四个变量为application.yml中的配置,MinioConfig.java配置文件创建了minio分布式存储系统的操作客户端minioClient并交给springboot进行管理,且创建了名为java-bucket的桶。

# 分布式存储minio相关配置
minio:# 分布式存储的服务地址,要做集群的话则是通过nginx配置负载均衡,该地址指向nginx入口endpoint: http://127.0.0.1:9001# 分布式存储系统对应的用户名和密码accessKey: minioadminsecretKey: minioadmin# 所有文件均存储在该名称对应的桶中bucketName: java-bucket

三、通过minioClient操作文件

@Component
public class minioUtil{private static MinioClient minioClient;private static String bucketName;// 由于静态方法中只能用静态变量,而静态变量无法直接实现注入,为此通过非静态的set方法注入值@Value("${minio.bucketName}")public void setBucketName(String bucketName) {fileUtils.bucketName = bucketName;}@Autowiredpublic void setMinioClient(MinioClient minioClient) {fileUtils.minioClient = minioClient;}// 将本地文件夹整个上传至minio存储系统,其中dirName表示上传的文件夹路径如 C:/admin/testDir ,len表示对源路径的截取长度,使其上传至minio存储系统保持相对路径,比如C:/admin/testDir/test.txt 截取成 admin/testDir/test.txtpublic static void minio_uploadFile(String dirName,int len){List<String> filePathList = new ArrayList<>();File file = new File(dirName);minio_recursionGetFileList(file,filePathList);for (String s : filePathList) {minio_uploadSingleFile(s.substring(len,s.length()),s);}}// 递归获取parentFile文件夹下的所有文件目录private static void minio_recursionGetFileList(File parentFile, List<String> filePathList) {File[] files = parentFile.listFiles();for (File file : files) {if(file.isFile()){filePathList.add(file.getPath());}else {minio_recursionGetFileList(file,filePathList);}}}// 本地单个文件的上传public static void minio_uploadSingleFile(String objectName,String fileName){objectName = objectName.replace("\\","/");// 上传文件try {minioClient.uploadObject(UploadObjectArgs.builder().bucket(bucketName).object(objectName)  // 上传到分布式系统的文件名称.filename(fileName) // 本地文件路径.build());} catch (Exception e) {throw new RuntimeException(e);}}//  删除minio存储系统bucketName桶中文件//  objectName为要删除的文件名,如要删除b文件夹下的test.txt,则objectName应为"b/test.txt"private static void minio_deleteFile(String objectName){try {minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(objectName).build());} catch (Exception e) {log.error("删除minio中文件出现错误:"+e.getMessage());}}// minio存储系统中下载objectName的文件到fileName,如下载objectName = "b/test.txt" , fileName = "C:/test1.txt"private static void minio_downloadFile(String objectName,String fileName){try {minioClient.downloadObject(DownloadObjectArgs.builder().bucket(bucketName).object(objectName).filename(fileName).build());} catch (Exception e) {log.info("下载minio文件出现错误:"+e.getMessage());}}// 获取minio的bucketName桶的所有文件列表private static void minio_getFileList(){// 获取文件列表Iterable<Result<Item>> results = minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).build());Iterator<Result<Item>> iterator = results.iterator();List<Object> items = new ArrayList<>();String format = "{'fileName':'%s','fileSize':'%s'}";try {while (iterator.hasNext()){Item item = iterator.next().get();System.out.println(item.objectName());System.out.println(item.size());}} catch (Exception e) {log.error("获取minio中文件列表出错:"+e.getMessage());}}/*** @description 多文件上传至minio系统*/public static void uploadToMinio(List<MultipartFile> multipartFiles,String dir) {for (int i = 0; i < multipartFiles.size(); i++) {minio_uploadFile(multipartFiles.get(i),multipartFiles.get(i).getName(),dir);}}private static void minio_uploadFile(MultipartFile file,String objectName,String dir){try {InputStream inputStream = file.getInputStream();minioClient.putObject(PutObjectArgs.builder().bucket(bucketName).object(dir+"/"+objectName).contentType(file.getContentType()).stream(inputStream, inputStream.available(), -1).build());} catch (Exception e) {log.error("文件上传至minio出错:"+e.getMessage());}}// 将minio存储系统中整个dir目录全部删除public static void deleteDirFromMinio(String dir){try {Iterable<Result<Item>> results = minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).delimiter(dir).prefix(dir+"/").build());for (Result<Item> itemResult : results) {Item item = itemResult.get();minioClient.removeObject(RemoveObjectArgs.builder().bucket(bucketName).object(item.objectName()).build());}} catch (Exception e) {log.error("删除minio中文件出现错误:"+e.getMessage());}}}
http://www.yayakq.cn/news/754987/

相关文章:

  • 怎么看网站用的什么后台公司网站建设代理一般做多久
  • 男女生做内个的网站苏州实力做网站公司
  • 宁波网站设计推荐荣盛网络民宿网站开发dfd图
  • 网站信息优化的方式车陂手机网站建设电话
  • 青岛网站建设技术外包游戏开发物语最强8人
  • 友汇网站建设一般多少钱轻淘客轻网站怎么做
  • 18款禁用软件app网站入口做网站推广链接该怎么做
  • 网站开发软件环境河南网站建设优化技术
  • 怎样做易支付网站网站漏洞怎么修复
  • dede做的网站总被挂马怎样做网站关键词优化
  • 做文案的网站有些什么软件德阳网站seo
  • 原创文章对网站的好处网站建设中的时尚资讯
  • 有域名有服务器怎么做网站网页建设软件
  • 网站怎样推广 优帮云莱芜百度网站建设
  • 做什麽网站有前景中国版动漫网站模板
  • 吉林省工程建设标准网站建设网站域名备案
  • 建网站吧临沂网站建设对实体企业的重要性
  • 设计网站登录框ps怎么做网站建设服务网站
  • 怎么做网站排名人才网招聘信息
  • 仓库管理系统网站建设2817网站
  • 规划建立一个网站英德市城乡建设局网站
  • wordpress菜单默认对游客不显示做seo如何赚钱
  • 贵阳设计网站建设中企视窗做网站怎么样
  • 网站建设客户需求调查表沈阳网站公司哪个好
  • 移动端网站怎么做seo网站的三大标签
  • 彩票网站什么做湖南长沙网络公司有哪些
  • 住房城乡建设部执业资格注册中心网站互动网站建设特点
  • 建设ca网站网站页面布局分析
  • 淄博网站制作设计公司ih5制作平台官网免费
  • 开发一个网站模版淘宝联盟建微网站