docker怎么安装minio及实现文件上传、删除、下载


这篇文章主要介绍“docker怎么安装minio及实现文件上传、删除、下载”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“docker怎么安装minio及实现文件上传、删除、下载”文章能帮助大家解决问题。

    1. docker安装minio步骤

    第一步 查镜像

    dockersearchminio

    第二步 拉镜像

    dockerpullminio/minio

    第三步 启动容器

    dockerrun-p9000:9000--nameminio-d--restart=always-e“MINIO_ACCESS_KEY=admin”-e“MINIO_SECRET_KEY=admin123456”-v/home/data:/data-v/home/config:/root/.miniominio/minioserver/data

    第四步 登录界面

    • http//:ip+9000

    • ACCESS_KEY:damin

    • SECRET_KEY:admin123456

    2. minio实现文件上传、删除、下载

    项目结构

    pom依赖:

    <dependencies><dependency><groupId&gt.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.1.0.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>3.0.10</version></dependency></dependencies>

    启动类:

    @SpringBootApplication@EnableDiscoveryClientpublicclassCfUploadApplication{publicstaticvoidmain(String[]args){SpringApplication.run(CfUploadApplication.class,args);}}

    yml配置文件:

    server:port:8002spring:application:name:upload-servicecloud:nacos:discovery:server-addr:localhost:8848servlet:multipart:enabled:true#开启文件上传max-file-size:500MBmax-request-size:500MBminio:endpoint:localhost:9000#Minio服务所在地址bucketName:cheung#存储桶名称accessKey:admin#访问的keysecretKey:admin123456#访问的秘钥logging:level:&nbsp.heima:debug

    controller代码:

    package&nbsp.cheung.upload.controller;importio.minio.MinioClient;importio.minio.policy.PolicyType;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.web.bind.annotation.*;importorg.springframework.web.multipart.MultipartFile;importjavax.servlet.http.HttpServletResponse;importjava.io.InputStream;importjava.io.OutputStream;importjava.net.URLEncoder;importjava.text.SimpleDateFormat;importjava.util.Date;@RestController@RequestMapping("file")publicclassUploadController{privatestaticfinalLoggerLOGGER=LoggerFactory.getLogger(UploadController.class);@Value("${minio.endpoint}")privateStringENDPOINT;@Value("${minio.bucketName}")privateStringBUCKETNAME;@Value("${minio.accessKey}")privateStringACCESSKEY;@Value("${minio.secretKey}")privateStringSECRETKEY;//文件创建@PostMapping("/upload")publicStringupload(MultipartFilefile){Strings=null;try{MinioClientminioClient=newMinioClient(ENDPOINT,ACCESSKEY,SECRETKEY);//存入bucket不存在则创建,并设置为只读if(!minioClient.bucketExists(BUCKETNAME)){minioClient.makeBucket(BUCKETNAME);minioClient.setBucketPolicy(BUCKETNAME,"*.*",PolicyType.READ_ONLY);}Stringfilename=file.getOriginalFilename();SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");//文件存储的目录结构StringobjectName=sdf.format(newDate())+"/"+filename;//存储文件minioClient.putObject(BUCKETNAME,objectName,file.getInputStream(),file.getContentType());LOGGER.info("文件上传成功!");s=ENDPOINT+"/"+BUCKETNAME+"/"+objectName;}catch(Exceptione){LOGGER.info("上传发生错误:{}!",e.getMessage());}returns;}//文件删除@DeleteMapping("/delete")publicStringdelete(Stringname){try{MinioClientminioClient=newMinioClient(ENDPOINT,ACCESSKEY,SECRETKEY);minioClient.removeObject(BUCKETNAME,name);}catch(Exceptione){return"删除失败"+e.getMessage();}return"删除成功";}//文件下载@GetMapping("/download")publicvoiddownloadFiles(@RequestParam("filename")Stringfilename,HttpServletResponsehttpResponse){try{MinioClientminioClient=newMinioClient(ENDPOINT,ACCESSKEY,SECRETKEY);InputStreamobject=minioClient.getObject(BUCKETNAME,filename);bytebuf[]=newbyte[1024];intlength=0;httpResponse.reset();httpResponse.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode(filename,"UTF-8"));httpResponse.setContentType("application/octet-stream");httpResponse.setCharacterEncoding("utf-8");OutputStreamoutputStream=httpResponse.getOutputStream();while((length=object.read(buf))>0){outputStream.write(buf,0,length);}outputStream.close();}catch(Exceptionex){LOGGER.info("导出失败:",ex.getMessage());}}}

    上传文件

    使用postman进行测试

    删除文件

    下载文件

    关于“docker怎么安装minio及实现文件上传、删除、下载”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注主机评测网行业资讯频道,小编每天都会为大家更新不同的知识点。


    上一篇:PreparedStatement的setObject作用是什么

    下一篇:安装的mysql中没有my.ini文件如何解决


    Copyright © 2002-2019 测速网 https://www.inhv.cn/ 皖ICP备2023010105号 城市 地区 街道
    温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!
    热门搜索