【Minio】云服务部署

官网:MinIO | High Performance, Kubernetes Native Object Storage

1.需自定义目录。并且配置好bat配置文件,注意账号密码长度。

minio.bat文件如下

@echo off
REM 声明采用UTF-8编码
chcp 65001
echo.
echo [信息] 运行MinIO文服务器。
echo.
:: 设置窗口标题
title Minio文件服务

:: 设置用户名为myname
setx MINIO_ROOT_USER root
:: 设置密码为mypassword
setx MINIO_ROOT_PASSWORD root666666
 
cd %~dp0
:: 切换到minio.exe文件所在目录
cd D:\Java\Healthy\miio\minio\bin
:: 启动minio服务
minio.exe server D:\Java\Healthy\miio\minio\data --console-address ":9001" --address ":9000" > D:\Java\Healthy\miio\minio\logs\minio.log
pause

2.就可以打开你配置的文件地址:localhost:9001

3.输入账号密码,生成秘钥。

4.然后配置你的Java项目即可

依赖:

<dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.8.1</version> <!-- minio 依赖于 okhttp 且版本较高。注意,spring-boot-dependencies 中的不够高 -->
        </dependency>
        <dependency>
            <groupId>io.minio</groupId>
            <artifactId>minio</artifactId>
            <version>8.3.7</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.70</version>
        </dependency>

yml文件配置

minio:
  bucket: health
  host: http://localhost:9001
  endpoint: http://localhost:9000
  accessKey: 8zuRnOZAKtCHIxZGVa30
  secretKey: EXO5mHpoc1MWwULPODWGZSJ6SbDHElZoCuQzPzSU

config

@Configuration
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MinioConfig {

  @Value("${minio.endpoint}")
  private String endpoint;

  @Value("${minio.accessKey}")
  private String accessKey;

  @Value("${minio.secretKey}")
  private String secretKey;

  @Bean
  public MinioClient minioClient() {
    return MinioClient.builder()
            .endpoint(endpoint)
            .credentials(accessKey, secretKey)
            .build();
  }
}

controllor

package com.itheima.health.controller;



import com.itheima.health.common.R;

import com.itheima.health.config.MinioConfig;
import io.minio.BucketExistsArgs;
import io.minio.MakeBucketArgs;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;


@RestController
@RequestMapping("/setmeal")
public class YunController {

    @Autowired
    private MinioConfig minioConfig;

       @PostMapping("/upload")
    public R upload(@RequestParam("imgFile") MultipartFile file) throws Exception {



        // 在这里设置你的存储桶名称
        String bucketName = "health";
        String uploadUrl = minioConfig.getEndpoint();// 上传路径地址
        String fileName = file.getOriginalFilename();// 文件名称

        try {
            // 创建连接对象
            MinioClient minioClient = MinioClient.builder().endpoint(uploadUrl)
                    .credentials(minioConfig.getAccessKey(), minioConfig.getSecretKey())
                    .build();

            // 判断桶是否存在
            boolean found = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build());

            // 判断桶是否存在,如果不存在则创建桶
            if (!found) {
                minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
            } else {
                System.out.println("桶已存在");
            }

            // 文件上传
            minioClient.putObject(PutObjectArgs.builder().bucket(bucketName)
                    .object(fileName)// 这里是文件名称
                    .stream(file.getInputStream(), file.getSize(), -1)// 文件内容,文件大小
                    // .contentType("video/mp4")// 文件的类型,可以不填写
                    .build());

            // 返回路径名称---访问时用
            return R.success(uploadUrl + "/" + bucketName + "/" + fileName);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值