Java实现文件上传至Minio

Java实现文件上传至Minio

首先导入所需依赖

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

配置文件中加入相关配置

# minio配置
minio:
  url: 路径
  accessKey: 账号 
  secretKey: 密码
  useSSL: 是否使用https

Controller中代码

@RestController
@RequestMapping("/file")
@Slf4j
public class FileUpLoadController {

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

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

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

    /**
     * 上传文件到minio
     *
     * @param file
     * @return
     * @throws Exception
     */
    @PostMapping("/uploadFile")
    public AjaxResult uploadFile(@RequestParam("imgFile") MultipartFile file) throws Exception {
        // 创建minio链接
        MinioClient minioClient = new MinioClient(url, accessKey, secretKey);
        // 得到文件流
        InputStream is = file.getInputStream();
        // 文件名
        String fileName = file.getOriginalFilename().replace("-", "");
        // 文件类型
        String contentType = file.getContentType();

        // 判断存储桶是否存在(注意: 存储桶名称不可包含大写字母)
        boolean bucketExists = minioClient.bucketExists("test-bucket");
        if (!bucketExists) {
            // 创建存储桶
            minioClient.makeBucket("test-bucket");
        }

        // 将文件放置到存储桶中
        minioClient.putObject("test-bucket", fileName, is, contentType);
        String url = minioClient.presignedGetObject("test-bucket", fileName);
        log.info(fileName + "文件上传成功");
        return AjaxResult.success(url + "文件上传成功");
    }

前端代码

<el-form-item label-width="100px" label="上传图片" prop="uploadImg">
  <el-upload ref="pic" :headers="headers" accept="image/*" :on-success="uploadSuccess" :file-list="imgList"
    :action="imgAction" :before-upload="beforeUpload"  name="imgFile">
    <el-button size="small" type="primary" icon="el-icon-upload">点击上传</el-button>
  </el-upload>
</el-form-item>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将文件上传MinIO,您可以按照以下步骤操作: 1. 首先,请确保您已成功安装MinIO服务器并配置好相应的环境。 2. 在您的应用程序中,可以使用MinIOJava SDK或其他语言的SDK来进行文件上传。 3. 在您的代码中,需要引入MinIO的客户端库并进行相应的配置,以连接到MinIO服务器。 4. 创建一个文件上传的接口或方法,接收上传的文件作为参数。 5. 在该接口或方法中,使用MinIO的客户端库将文件上传MinIO服务器。 6. 在上传文件时,可以指定文件存储的桶(bucket)和对象(object)的名称。 7. 上传完成后,您可以通过MinIO的客户端库来获取相关的上传结果或处理错误情况。 下面是一个示例的Java代码片段,展示了如何使用MinIOJava SDK进行文件上传: ```java import io.minio.MinioClient; import io.minio.errors.MinioException; import org.springframework.web.multipart.MultipartFile; public class MinIOUploader { private static final String MINIO_ENDPOINT = "http://localhost:9002"; private static final String ACCESS_KEY = "your-access-key"; private static final String SECRET_KEY = "your-secret-key"; private static final String BUCKET_NAME = "your-bucket-name"; public String uploadFile(MultipartFile file) { try { // 创建MinIO客户端 MinioClient minioClient = new MinioClient(MINIO_ENDPOINT, ACCESS_KEY, SECRET_KEY); // 检查存储桶是否存在,如果不存在则创建 boolean isExist = minioClient.bucketExists(BUCKET_NAME); if (!isExist) { minioClient.makeBucket(BUCKET_NAME); } // 生成文件在MinIO服务器中的唯一对象名称 String objectName = System.currentTimeMillis() + "-" + file.getOriginalFilename(); // 上传文件 minioClient.putObject(BUCKET_NAME, objectName, file.getInputStream(), file.getContentType()); // 返回文件的访问路径 return minioClient.getObjectUrl(BUCKET_NAME, objectName); } catch (MinioException e) { e.printStackTrace(); return "文件上传失败"; } catch (Exception e) { e.printStackTrace(); return "文件上传失败"; } } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值