minio安装与上传文件

编程入门 行业动态 更新时间:2024-10-23 03:19:19

minio安装与<a href=https://www.elefans.com/category/jswz/34/1770844.html style=上传文件"/>

minio安装与上传文件

目录

1.安装(linux)

1.1 下载

1.2 创建目录

1.3 赋予权限

1.4 指定端口号后台启动

2.访问

2.1创建桶

2.2修改权限

3.springboot整合minio

3.1上传文件


1.安装(linux)

1.1 下载

需要翻墙,可以先在本地下载,然后上传到服务器。

1.2 创建目录

mkdir /opt/minio
mkdir /opt/minio/data

将下载好的minio文件上传到minio目录下。 

1.3 赋予权限

进入miniomulu

chmod +x minio

1.4 指定端口号后台启动

nohup /opt/minio server --address 0.0.0.0:9000 /opt/minio/data  > /opt/minio/minio.log 2>&1 &

如果用的是其他目录,则需要更改一下上面启动命令,将启动命令中的目录改为你自己的目录。

注意开启9000和9001端口号。

2.访问

http://localhost:9000/

服务器ip+端口

账号密码都是:minioadmin

2.1创建桶

2.2修改权限

需要本地访问的话需要改为public,不然会没有权限查看上传文件

3.springboot整合minio

3.1上传文件

yml配置

# minio 参数配置
minio:endpoint: http://xxx:9000accessKey: minioadminsecretKey: minioadminbucketName: test

逻辑

@Autowired
private MinIoClientConfig minIoClientConfig;@Autowired
private MinioClient minioClient;
    @Overridepublic DataResult uploadImg(MultipartFile file) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {String url=minIoClientConfig.getEndpoint();String bucketName="test";//获取文件名称String originalFilename = file.getOriginalFilename();//获取文件的类型//使用当前时间重新生成文件名,防止文件名称重复造成文件覆盖Date d = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String fileNewName = System.currentTimeMillis() + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));String fileName = sdf.format(d) + "&&" + fileNewName;//4.构建文件上传路径String filePath = new SimpleDateFormat("yyyy-MM-dd").format(new Date());//5.文件上传的路径String uploadUrl=filePath+"/"+fileName;//6.开始上传InputStream inputStream=null;try {inputStream=file.getInputStream();} catch (IOException e) {e.printStackTrace();}PutObjectArgs putObjectArgs = PutObjectArgs.builder().object(uploadUrl).contentType("image/jpeg").bucket(bucketName).stream(inputStream, inputStream.available(), -1).build();minioClient.putObject(putObjectArgs);return DataResult.success(url+"/"+bucketName+"/"+uploadUrl);}
    @PostMapping("/upload")public DataResult uploadImg(MultipartFile file) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {if(file==null||file.isEmpty()||file.getSize()==0){return DataResult.error(ResponseCode.FILE_IS_NOT_NULL.getMsg());}return userService.uploadImg(file);}

之后调用接口的时候会直接返回一个路径,用那个路径就可以访问到自己上传的那个文件了。

代码中还有一个问题,就是我使用@Value来调用yml中已经配置好了的bucketName, 但是却调用不成功,所以我是直接在逻辑代码处赋值桶的名字的。

关于minio其他查询桶,删除桶等功能可以参考:【精选】分布式文件存储系统minio_minio数据库-CSDN博客

更多推荐

minio安装与上传文件

本文发布于:2023-12-08 11:45:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1672686.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:上传文件   minio

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!